Booting Linux
with a bootloader written in Rust
#139
Replies: 4 comments 4 replies
-
The guide you linked says:
From looking at the filenames in your log, it says |
Beta Was this translation helpful? Give feedback.
-
Yep, I changed the top of my stack (i.e. __boot_core_stack_end_exclusive) in link.ld to point to 0x598_0000 (or 93847552) to accommodate RAM-loading of the dtb and kernel images.
I was wondering why the binary/bootloader needs to start at 0x80000. If I change the entry point to a higher address, rpi4 doesnt boot at all. I haven't tried lower addresses (i.e. entry points though) |
Beta Was this translation helpful? Give feedback.
-
Ah, this may be it. I only checked to see if the top of the stack was aligned to the 64K page requirement. But I didn't check to see if the kernel was also aligned on a 64K page. I guess, I'll need to manually control where the kernel is loaded in RAM with |
Beta Was this translation helpful? Give feedback.
-
So it worked The kernel takes control and panics as it cant find a root fs. (there isn't one for now). Thank you for the tip :) Output below [ 0.000027] EMMC: reset card.
[ 0.000146] Divisor = 63, Freq Set = 396825
[ 0.407463] CSD Contents : 00 40 0e 00 32 5b 59 00 00ee 9d 7f 80 0a 40 00
[ 0.411290] cemmc_structure=1, spec_vers=0, taac=0x0E, nsac=0x00, tran_speed=0x32,ccc=0x05B5, read_bl_len=0x09, read_bl_partial=0b, write_blk_misalign=0b,read_blk_misalign=0b, dsr_imp=0b, sector_size =0x7F, erase_blk_en=1b
[ 0.430921] CSD 2.0: ver2_c_size = 0xEFFD, card capacity: 32026132480 bytes or 32.03GiB
[ 0.438827] wp_grp_size=0x0000000b, wp_grp_enable=0b, default_ecc=00b, r2w_factor=010b, write_bl_len=0x09, write_bl_partial=0b, file_format_grp=0, copy=0b, perm_write_protect=0b, tmp_write_protect=0b, file_format=0b ecc=00b
[ 0.458551] Divisor = 1, Freq Set = 25000000
[ 0.463176] EMMC: Bus width set to 4
[ 0.466202] EMMC: SD Card Type 2 HC, 30542Mb, mfr_id: 27, 'SM:EB2MW', r3.0, mfr_date: 8/2017, serial: 0xc8e6576d, RCA: 0x59b4
[ 0.477399] EMMC2 driver initialized...
[ 0.481223] rpi4 version 0.1.0
[ 0.484175] Booting on: Raspberry Pi 4
[ 0.487824] Current privilege level: EL1
[ 0.491646] Exception handling state:
[ 0.495208] Debug: Masked
[ 0.498336] SError: Masked
[ 0.501463] IRQ: Masked
[ 0.504591] FIQ: Masked
[ 0.507718] Architectural timer resolution: 18 ns
[ 0.512322] Drivers loaded:
[ 0.515016] 1. BCM GPIO
[ 0.517883] 2. BCM PL011 UART
[ 0.521271] Chars written: 1423
[W 0.524314] wait duration smaller than architecturally supported, skipping
[ 0.531088] create new emmc-fat controller...
[ 0.537988] Listing root directory:
[ 0.539822] Found: DirEntry { name: ShortFileName("boot"), mtime: Timestamp(2021-05-07 16:06:08), ctime: Timestamp(2021-05-07 16:06:08), attributes: FV, cluster: Cluster(0), size: 0, entry_block: BlockIdx(16290), entry_offset: 0 }
[ 0.559419] Found: DirEntry { name: ShortFileName("BCM271~1.DTB"), mtime: Timestamp(2022-01-08 18:31:30), ctime: Timestamp(2022-01-08 18:35:56), attributes: FA, cluster: Cluster(65538), size: 25713, entry_block: BlockIdx(16290), entry_offset: 96 }
[ 0.581396] Found: DirEntry { name: ShortFileName("KERNEL8.IMG"), mtime: Timestamp(2022-01-09 17:49:46), ctime: Timestamp(2022-01-09 17:50:04), attributes: FA, cluster: Cluster(196610), size: 93519872, entry_block: BlockIdx(16290), entry_offset: 128 }
[ 0.603724] Found: DirEntry { name: ShortFileName("VMLINUZ"), mtime: Timestamp(2022-01-08 18:37:12), ctime: Timestamp(2022-01-08 18:38:16), attributes: FA, cluster: Cluster(97567), size: 29272576, entry_block: BlockIdx(16290), entry_offset: 160 }
[ 0.629717] Found: DirEntry { name: ShortFileName("CONFIG.TXT"), mtime: Timestamp(2022-01-04 11:46:38), ctime: Timestamp(2021-05-07 15:07:00), attributes: FA, cluster: Cluster(1017), size: 1846, entry_block: BlockIdx(17103), entry_offset: 352 }
[ 0.648580] Found: DirEntry { name: ShortFileName("FIXUP4.DAT"), mtime: Timestamp(2021-04-30 14:01:38), ctime: Timestamp(2021-05-07 15:07:00), attributes: FA, cluster: Cluster(1036), size: 5446, entry_block: BlockIdx(17103), entry_offset: 480 }
[ 0.673098] Found: DirEntry { name: ShortFileName("START4.ELF"), mtime: Timestamp(2021-04-30 14:01:38), ctime: Timestamp(2021-05-07 15:07:02), attributes: FA, cluster: Cluster(59166), size: 2228768, entry_block: BlockIdx(54532), entry_offset: 224 }
[ 0.694027] Found: DirEntry { name: ShortFileName("SYSTEM~1"), mtime: Timestamp(2021-09-21 13:57:30), ctime: Timestamp(2021-09-21 13:57:28), attributes: DHS, cluster: Cluster(97564), size: 0, entry_block: BlockIdx(105365), entry_offset: 192 }
[ 0.714709] Get handle to `dtb` file in root_dir...
[ 0.719651] load `dtb` into RAM...
[ 0.810164] loaded dtb: 25713 bytes, starting at addr: 0x3a00000
[ 0.813383] Get handle to `kernel` file in root_dir...
[ 0.819571] load `kernel` into RAM...
[ 92.781638] loaded kernel: 29272576 bytes, starting at addr: 0x3c00000
[ 92.785375] ***************************************** Starting kernel ********************************************
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]
[ 0.000000] Linux version 5.15.0-trunk-arm64 ([email protected]) (gcc-10 (Apertis 10.2.1-6+apertis3bv2022preb4) 10.2.1 20210110, GNU ld (GNU Binutils for Apertis) 2.35.2) #1 SMP Debian 5.15.1-1~exp1+apertis1 (2021-11-11)
[ 0.000000] Machine model: Raspberry Pi 4 Model B
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: created CMA memory pool at 0x0000000037400000, size 64 MiB
[ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[ 0.000000] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x00000000fbffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0xfb814b00-0xfb816fff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000000000-0x000000003fffffff]
[ 0.000000] DMA32 [mem 0x0000000040000000-0x00000000fbffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x000000003b3fffff]
[ 0.000000] node 0: [mem 0x0000000040000000-0x00000000fbffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00000000fbffffff]
[ 0.000000] percpu: Embedded 29 pages/cpu s81752 r8192 d28840 u118784
[ 0.000000] Detected PIPT I-cache on CPU0
[ 0.000000] CPU features: detected: Spectre-v2
[ 0.000000] CPU features: detected: Spectre-v3a
[ 0.000000] CPU features: detected: Spectre-v4
[ 0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 996912
[ 0.000000] Policy zone: DMA32
[ 0.000000] Kernel command line:
[ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:on, heap free:off
[ 0.000000] software IO TLB: mapped [mem 0x0000000033400000-0x0000000037400000] (64MB)
[ 0.000000] Memory: 941556K/4050944K available (12352K kernel code, 2538K rwdata, 7808K rodata, 5760K init, 622K bss, 175900K reserved, 65536K cma-reserved)
[ 0.000000] random: get_random_u64 called from __kmem_cache_create+0x34/0x5cc with crng_init=0
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] ftrace: allocating 40621 entries in 159 pages
[ 0.000000] ftrace: allocated 159 pages with 6 groups
[ 0.000000] trace event string verifier disabled
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[ 0.000000] Rude variant of Tasks RCU enabled.
[ 0.000000] Tracing variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] Root IRQ handler: gic_handle_irq
[ 0.000000] arch_timer: cp15 timer(s) running at 54.00MHz (virt).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xc743ce346, max_idle_ns: 440795203123 ns
[ 0.000000] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns
[ 0.000218] Console: colour dummy device 80x25
[ 0.000573] printk: console [tty0] enabled
[ 0.000672] Calibrating delay loop (skipped), value calculated using timer frequency.. 108.00 BogoMIPS (lpj=216000)
[ 0.000701] pid_max: default: 32768 minimum: 301
[ 0.000849] LSM: Security Framework initializing
[ 0.000888] Yama: disabled by default; enable with sysctl kernel.yama.*
[ 0.001040] AppArmor: AppArmor initialized
[ 0.001061] TOMOYO Linux initialized
[ 0.001202] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.001281] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.003781] rcu: Hierarchical SRCU implementation.
[ 0.005983] EFI services will not be available.
[ 0.006549] smp: Bringing up secondary CPUs ...
[ 0.007231] Detected PIPT I-cache on CPU1
[ 0.007309] CPU1: Booted secondary processor 0x0000000001 [0x410fd083]
[ 0.008163] Detected PIPT I-cache on CPU2
[ 0.008211] CPU2: Booted secondary processor 0x0000000002 [0x410fd083]
[ 0.009022] Detected PIPT I-cache on CPU3
[ 0.009070] CPU3: Booted secondary processor 0x0000000003 [0x410fd083]
[ 0.009182] smp: Brought up 1 node, 4 CPUs
[ 0.009249] SMP: Total of 4 processors activated.
[ 0.009262] CPU features: detected: 32-bit EL0 Support
[ 0.009273] CPU features: detected: 32-bit EL1 Support
[ 0.009287] CPU features: detected: CRC32 instructions
[ 0.027635] ------------[ cut here ]------------
[ 0.027669] CPU: CPUs started in inconsistent modes
[ 0.027683] WARNING: CPU: 0 PID: 1 at arch/arm64/kernel/smp.c:426 smp_cpus_done+0x78/0xc4
[ 0.027737] Modules linked in:
[ 0.027755] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.15.0-trunk-arm64 #1 Debian 5.15.1-1~exp1+apertis1
[ 0.027780] Hardware name: Raspberry Pi 4 Model B (DT)
[ 0.027793] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 0.027814] pc : smp_cpus_done+0x78/0xc4
[ 0.027834] lr : smp_cpus_done+0x78/0xc4
[ 0.027853] sp : ffff800011cabe00
[ 0.027863] x29: ffff800011cabe00 x28: 0000000000000000 x27: 0000000000000000
[ 0.027892] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000000
[ 0.027918] x23: 0000000000000000 x22: ffff800011bf1000 x21: 0000000000000000
[ 0.027942] x20: ffff800011527e40 x19: ffff800011a20000 x18: 0000000000000001
[ 0.027967] x17: 000000003303d82a x16: 0000000017a5ca54 x15: 0720072007200720
[ 0.027992] x14: 0720072d072d072d x13: 7365646f6d20746e x12: 65747369736e6f63
[ 0.028017] x11: ffff800011a00270 x10: ffff8000119a9530 x9 : ffff80001011cc1c
[ 0.028042] x8 : ffff8000119a7b68 x7 : ffff8000119ffb68 x6 : fffffffffffe1370
[ 0.028066] x5 : 00000000000019c8 x4 : 000000000000aff5 x3 : 0000000000000000
[ 0.028090] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0000401bbd00
[ 0.028115] Call trace:
[ 0.028127] smp_cpus_done+0x78/0xc4
[ 0.028146] smp_init+0x88/0x98
[ 0.028168] kernel_init_freeable+0x194/0x328
[ 0.028188] kernel_init+0x30/0x140
[ 0.028205] ret_from_fork+0x10/0x20
[ 0.028231] ---[ end trace 63fbe691ec0b5d90 ]---
[ 0.028339] alternatives: patching kernel code
[ 0.118498] node 0 deferred pages initialised in 88ms
[ 0.120117] devtmpfs: initialized
[ 0.128290] Registered cp15_barrier emulation handler
[ 0.128339] Registered setend emulation handler
[ 0.128358] KASLR disabled due to lack of seed
[ 0.128659] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.128756] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[ 0.130859] pinctrl core: initialized pinctrl subsystem
[ 0.131744] DMI not present or invalid.
[ 0.132411] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.137247] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[ 0.138056] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[ 0.139117] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[ 0.139224] audit: initializing netlink subsys (disabled)
[ 0.139503] audit: type=2000 audit(0.136:1): state=initialized audit_enabled=0 res=1
[ 0.140678] thermal_sys: Registered thermal governor 'fair_share'
[ 0.140687] thermal_sys: Registered thermal governor 'bang_bang'
[ 0.140704] thermal_sys: Registered thermal governor 'step_wise'
[ 0.140717] thermal_sys: Registered thermal governor 'user_space'
[ 0.140729] thermal_sys: Registered thermal governor 'power_allocator'
[ 0.140958] cpuidle: using governor ladder
[ 0.141002] cpuidle: using governor menu
[ 0.141066] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.141195] ASID allocator initialised with 65536 entries
[ 0.141611] Serial: AMBA PL011 UART driver
[ 0.168395] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[ 0.168437] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[ 0.168453] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.168468] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[ 0.827731] ACPI: Interpreter disabled.
[ 0.828414] iommu: Default domain type: Translated
[ 0.828435] iommu: DMA domain TLB invalidation policy: strict mode
[ 0.828758] vgaarb: loaded
[ 0.829101] EDAC MC: Ver: 3.0.0
[ 0.830911] NetLabel: Initializing
[ 0.830935] NetLabel: domain hash size = 128
[ 0.830948] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO
[ 0.831028] NetLabel: unlabeled traffic allowed by default
[ 0.831359] clocksource: Switched to clocksource arch_sys_counter
[ 0.876896] VFS: Disk quotas dquot_6.6.0
[ 0.877003] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.877847] AppArmor: AppArmor Filesystem Enabled
[ 0.878080] pnp: PnP ACPI: disabled
[ 0.886909] NET: Registered PF_INET protocol family
[ 0.887522] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[ 0.890639] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[ 0.890952] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[ 0.891690] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[ 0.892002] TCP: Hash tables configured (established 32768 bind 32768)
[ 0.892511] MPTCP token hash table entries: 4096 (order: 4, 98304 bytes, linear)
[ 0.892714] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[ 0.892836] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[ 0.893509] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.893555] NET: Registered PF_XDP protocol family
[ 0.893578] PCI: CLS 0 bytes, default 64
[ 0.899624] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
[ 0.899845] kvm [1]: HYP mode not available
[ 0.901207] Initialise system trusted keyrings
[ 0.901270] Key type blacklist registered
[ 0.901484] workingset: timestamp_bits=42 max_order=20 bucket_order=0
[ 0.907865] zbud: loaded
[ 0.908694] integrity: Platform Keyring initialized
[ 0.908719] Key type asymmetric registered
[ 0.908733] Asymmetric key parser 'x509' registered
[ 0.908830] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[ 0.909106] io scheduler mq-deadline registered
[ 0.917118] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[ 0.918022] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:
[ 0.918057] brcm-pcie fd500000.pcie: No bus range found for /scb/pcie@7d500000, using [bus 00-ff]
[ 0.918106] brcm-pcie fd500000.pcie: MEM 0x0600000000..0x0603ffffff -> 0x00f8000000
[ 0.918149] brcm-pcie fd500000.pcie: IB MEM 0x0000000000..0x00bfffffff -> 0x0000000000
[ 0.981438] brcm-pcie fd500000.pcie: link up, 5.0 GT/s PCIe x1 (SSC)
[ 0.981675] brcm-pcie fd500000.pcie: PCI host bridge to bus 0000:00
[ 0.981697] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 0.981717] pci_bus 0000:00: root bus resource [mem 0x600000000-0x603ffffff] (bus address [0xf8000000-0xfbffffff])
[ 0.981775] pci 0000:00:00.0: [14e4:2711] type 01 class 0x060400
[ 0.981873] pci 0000:00:00.0: PME# supported from D0 D3hot
[ 0.984348] pci 0000:01:00.0: [1106:3483] type 00 class 0x0c0330
[ 0.984432] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00000fff 64bit]
[ 0.984623] pci 0000:01:00.0: PME# supported from D0 D3hot
[ 0.997366] pci 0000:00:00.0: BAR 14: assigned [mem 0x600000000-0x6000fffff]
[ 0.997398] pci 0000:01:00.0: BAR 0: assigned [mem 0x600000000-0x600000fff 64bit]
[ 0.997430] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 0.997448] pci 0000:00:00.0: bridge window [mem 0x600000000-0x6000fffff]
[ 0.997645] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
[ 0.997816] pcieport 0000:00:00.0: PME: Signaling with IRQ 50
[ 0.998202] pcieport 0000:00:00.0: AER: enabled with IRQ 50
[ 1.009317] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 1.011505] fe215040.serial: ttyS1 at MMIO 0xfe215040 (irq = 26, base_baud = 24999999) is a 16550
[ 2.138457] printk: console [ttyS1] enabled
[ 2.143703] Serial: AMBA driver
[ 2.146942] SuperH (H)SCI(F) driver initialized
[ 2.152116] msm_serial: driver initialized
[ 2.157303] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 2.164327] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[ 2.172593] mousedev: PS/2 mouse device common for all mice
[ 2.179403] brcmstb-i2c fef04500.i2c: @97500hz registered in polling mode
[ 2.186670] brcmstb-i2c fef09500.i2c: @97500hz registered in polling mode
[ 2.194931] ledtrig-cpu: registered to indicate activity on CPUs
[ 2.201806] bcm2835-mbox fe00b880.mailbox: mailbox enabled
[ 2.209520] NET: Registered PF_INET6 protocol family
[ 2.221004] Segment Routing with IPv6
[ 2.224811] In-situ OAM (IOAM) with IPv6
[ 2.228893] mip6: Mobile IPv6
[ 2.231922] NET: Registered PF_PACKET protocol family
[ 2.237240] mpls_gso: MPLS GSO support
[ 2.241776] registered taskstats version 1
[ 2.245976] Loading compiled-in X.509 certificates
[ 2.401073] Loaded X.509 cert 'Debian Secure Boot CA: 6ccece7e4c6c0d1f6149f3dd27dfcc5cbb419ea1'
[ 2.410015] Loaded X.509 cert 'Debian Secure Boot Signer 2021 - linux: 4b6ef5abca669825178e052c84667ccbc0531f8c'
[ 2.421388] zswap: loaded using pool lzo/zbud
[ 2.426682] Key type ._fscrypt registered
[ 2.430784] Key type .fscrypt registered
[ 2.434783] Key type fscrypt-provisioning registered
[ 2.442041] Key type encrypted registered
[ 2.446160] AppArmor: AppArmor sha1 policy hashing enabled
[ 2.451809] ima: No TPM chip found, activating TPM-bypass!
[ 2.457420] ima: Allocated hash algorithm: sha256
[ 2.462262] ima: No architecture policies found
[ 2.466931] evm: Initialising EVM extended attributes:
[ 2.472167] evm: security.selinux
[ 2.475543] evm: security.SMACK64 (disabled)
[ 2.479891] evm: security.SMACK64EXEC (disabled)
[ 2.484591] evm: security.SMACK64TRANSMUTE (disabled)
[ 2.489735] evm: security.SMACK64MMAP (disabled)
[ 2.494433] evm: security.apparmor
[ 2.497898] evm: security.ima
[ 2.500919] evm: security.capability
[ 2.504560] evm: HMAC attrs: 0x1
[ 2.513599] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 24, base_baud = 0) is a PL011 rev2
[ 2.522980] serial serial0: tty port ttyAMA0 registered
[ 2.529439] raspberrypi-firmware soc:firmware: Attached to firmware from 2021-04-30T13:45:52
[ 2.703530] List of all partitions:
[ 2.707099] No filesystem could mount root, tried:
[ 2.707103]
[ 2.713604] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 2.722014] CPU: 2 PID: 1 Comm: swapper/0 Tainted: G S 5.15.0-trunk-arm64 #1 Debian 5.15.1-1~exp1+apertis1
[ 2.733255] Hardware name: Raspberry Pi 4 Model B (DT)
[ 2.738478] Call trace:
[ 2.740961] dump_backtrace+0x0/0x1e4
[ 2.744706] show_stack+0x24/0x30
[ 2.748083] dump_stack_lvl+0x68/0x84
[ 2.751814] dump_stack+0x18/0x34
[ 2.755187] panic+0x158/0x358
[ 2.758292] mount_block_root+0x1f4/0x210
[ 2.762376] mount_root+0x15c/0x17c
[ 2.765926] prepare_namespace+0x13c/0x17c
[ 2.770096] kernel_init_freeable+0x2c8/0x328
[ 2.774530] kernel_init+0x30/0x140
[ 2.778080] ret_from_fork+0x10/0x20
[ 2.781721] SMP: stopping secondary CPUs
[ 2.785714] Kernel Offset: disabled
[ 2.789256] CPU features: 0x10000071,00000846
[ 2.793687] Memory Limit: none
[ 2.796795] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]--- |
Beta Was this translation helpful? Give feedback.
-
I've been working on a rust-based bootloader for the raspberry pi 4 .
I'm not sure what I'm missing as I'm not well-versed with Linux but I assume folks who are, may be able to provide some pointers. So, here what I've done so far - follow the Booting AArch64 Linux guide and from what I was able to gather, there are 3 parts to booting
Linux
-My code manages to make it to the final jump after loading the kernel and dtb but after this point nothing happens i.e. I see no serial output or any indication that the kernel has booted (or failed to boot).
Full output:
So, I'm kind out of ideas (until I find a HW debugger) but if anyone has any pointers on what I might be missing here, that would be much appreciated.
Beta Was this translation helpful? Give feedback.
All reactions