Bug 1967353

Summary: Fedora IoT fails to boot from an SD card on the RockPro64
Product: [Fedora] Fedora Reporter: Jordan Williams <jordan>
Component: IoTAssignee: Peter Robinson <pbrobinson>
Status: CLOSED NOTABUG QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: 34Flags: jordan: needinfo-
Target Milestone: ---   
Target Release: ---   
Hardware: aarch64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-06-03 13:32:49 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jordan Williams 2021-06-03 00:21:47 UTC
Description of problem:

On the RockPro64, 4 GB model, booting Fedora IoT 34 from an SD Card fails with a kernel panic but booting the same Fedora IoT from eMMC works.
The image was flashed to the target media using the arm-image-installer tool with the same options.
I attempted to use multiple SD cards, one of which is fairly new and high quality.

Version-Release number of selected component (if applicable):

Fedora-IoT-34-20210429.1.aarch64.raw.xz

How reproducible:

Completely reproducible for me on my end, though the kernel panic message might vary.

Steps to Reproduce:
1. Download the Fedora 34 IoT image: Fedora-IoT-34-20210429.1.aarch64.raw.xz

2. Flash an SD card with the image using arm-image-installer.

sudo arm-image-installer --image="$HOME/Downloads/Fedora-IoT-34-20210429.1.aarch64.raw.xz" --target=rockpro64-rk3399 --media=/dev/sda --resizefs --relabel -y --addconsole --showboot --addkey="$HOME/.ssh/id_rsa.pub" --norootpass

3. Insert the SD card into the RockPro64 with no other storage media attached.

4. Attach a serial console through UART on the RockPro64 for debugging.
Don't attach TxD until after the SPI has booted.

5. Boot the RockPro64 or hit the Reset button to load the SD card.


Actual results:

The bootloader boots the kernel off the SD card an the initial kernel boot messages appear on the serial console until a Kernel Panic message appears.
When the HDMI cable is plugged in to my TV, the screen occasionally flashes with static and emits auditory popping noises, otherwise the screen is completely blank.

Expected results:

I expected Fedora IoT 34 to successfully boot using the SD card on the RockPro64, like the eMMC module does, booting to a login prompt on the serial console.

Additional info:

I can reproduce and provide debug logs if requested. I don't have the original logs saved.

Comment 1 Peter Robinson 2021-06-03 07:56:55 UTC
> Steps to Reproduce:
> 1. Download the Fedora 34 IoT image: Fedora-IoT-34-20210429.1.aarch64.raw.xz
> 
> 2. Flash an SD card with the image using arm-image-installer.
> 
> sudo arm-image-installer
> --image="$HOME/Downloads/Fedora-IoT-34-20210429.1.aarch64.raw.xz"
> --target=rockpro64-rk3399 --media=/dev/sda --resizefs --relabel -y
> --addconsole --showboot --addkey="$HOME/.ssh/id_rsa.pub" --norootpass

You indicate below the SPI, do you have the firmware on SPI flash? If so you should use --target=none

> 3. Insert the SD card into the RockPro64 with no other storage media
> attached.
> 
> 4. Attach a serial console through UART on the RockPro64 for debugging.
> Don't attach TxD until after the SPI has booted.

Why?

> 5. Boot the RockPro64 or hit the Reset button to load the SD card.
> 
> 
> Actual results:
> 
> The bootloader boots the kernel off the SD card an the initial kernel boot
> messages appear on the serial console until a Kernel Panic message appears.

Please attach the output of the kernel panic.

Comment 2 Jordan Williams 2021-06-03 13:32:49 UTC
(In reply to Peter Robinson from comment #1)
> > Steps to Reproduce:
> > 1. Download the Fedora 34 IoT image: Fedora-IoT-34-20210429.1.aarch64.raw.xz
> > 
> > 2. Flash an SD card with the image using arm-image-installer.
> > 
> > sudo arm-image-installer
> > --image="$HOME/Downloads/Fedora-IoT-34-20210429.1.aarch64.raw.xz"
> > --target=rockpro64-rk3399 --media=/dev/sda --resizefs --relabel -y
> > --addconsole --showboot --addkey="$HOME/.ssh/id_rsa.pub" --norootpass
> 
> You indicate below the SPI, do you have the firmware on SPI flash? If so you
> should use --target=none

Thanks! I wasn't aware of that.

> 
> > 3. Insert the SD card into the RockPro64 with no other storage media
> > attached.
> > 
> > 4. Attach a serial console through UART on the RockPro64 for debugging.
> > Don't attach TxD until after the SPI has booted.
> 
> Why?

That was mentioned on the Pine64 Wiki, but it doesn't seem to be necessary now that I try leaving it plugged in.

> 
> > 5. Boot the RockPro64 or hit the Reset button to load the SD card.
> > 
> > 
> > Actual results:
> > 
> > The bootloader boots the kernel off the SD card an the initial kernel boot
> > messages appear on the serial console until a Kernel Panic message appears.
> 
> Please attach the output of the kernel panic.

Of course, I flashed the SD card and it now works like a charm... perhaps it was a bad flash before but it now boots fine. Sorry for the trouble. Thanks again!

Comment 3 Jordan Williams 2021-06-03 13:33:25 UTC
(In reply to Peter Robinson from comment #1)
> > Steps to Reproduce:
> > 1. Download the Fedora 34 IoT image: Fedora-IoT-34-20210429.1.aarch64.raw.xz
> > 
> > 2. Flash an SD card with the image using arm-image-installer.
> > 
> > sudo arm-image-installer
> > --image="$HOME/Downloads/Fedora-IoT-34-20210429.1.aarch64.raw.xz"
> > --target=rockpro64-rk3399 --media=/dev/sda --resizefs --relabel -y
> > --addconsole --showboot --addkey="$HOME/.ssh/id_rsa.pub" --norootpass
> 
> You indicate below the SPI, do you have the firmware on SPI flash? If so you
> should use --target=none

Thanks! I wasn't aware of that.

> 
> > 3. Insert the SD card into the RockPro64 with no other storage media
> > attached.
> > 
> > 4. Attach a serial console through UART on the RockPro64 for debugging.
> > Don't attach TxD until after the SPI has booted.
> 
> Why?

That was mentioned on the Pine64 Wiki, but it doesn't seem to be necessary now that I try leaving it plugged in.

> 
> > 5. Boot the RockPro64 or hit the Reset button to load the SD card.
> > 
> > 
> > Actual results:
> > 
> > The bootloader boots the kernel off the SD card an the initial kernel boot
> > messages appear on the serial console until a Kernel Panic message appears.
> 
> Please attach the output of the kernel panic.

Of course, I flashed the SD card and it now works like a charm... perhaps it was a bad flash before but it now boots fine. Sorry for the trouble. Thanks again!