|
From: | ckim |
Subject: | why doesn't arm virt machine boot linux when uart address size is increased? |
Date: | Mon, 12 Apr 2021 18:01:08 +0900 |
Hello all, Earlier, I have copied the arm/virt machine and named it ab21q. I changed the memory map of ab21q to match our system (under development). Among others the original UART address/size was changed from {0x09000000, 0x1000} to {0x10210000, 0xf000}. (the numbers were given to me) I checked a couple of baremetal programs run ok on the new machine. But when I tried running linux on ab21q this morning, the linux kernel didn’t to the shell prompt. (Seen using debugger, it runs to the end of start_kernel function, but nothing happens after that point, whereas the original ‘virt’ machine gives me booting messages from that point) But if I change the UART address/size to {0x10210000, 0x1000}, it boots ok. I know the UART doesn’t need that amount (0xf000) of space, but why doesn’t linux boot with this UART address range size? I checked even for ‘virt’ machine, if I increase the UART address size to 0x2000 from 0x1000, it doesn’t boot. I am curious about what mechanism is preventing it from booting when the UART address space size is bigger than necessary and also what the kernel is doing during the 3~4 seconds after the end of start_kernel function and printing “Booting from ..” message. (I am aware the ‘virt’ machine makes the flattend device tree and passes it to the OS for booting) Thanks! Chan Kim |
[Prev in Thread] | Current Thread | [Next in Thread] |