Bug 2183828

Summary: RFE: Fedora does not provide firmware for ODROID N2+
Product: [Fedora] Fedora Reporter: billiboy
Component: uboot-toolsAssignee: Peter Robinson <pbrobinson>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: dan, dennis, jean, jordan, kfenzi, nrevo, ole.d, pbrobinson, pwhalen
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-04-02 15:26:45 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:
Attachments:
Description Flags
Hardkernel_Odroid-N2+.log
none
ODROID firmware support
none
Build enable none

Description billiboy 2023-04-02 14:26:06 UTC
Created attachment 1955305 [details]
Hardkernel_Odroid-N2+.log

Fedora aarch64 images work out-of-the-box on ODROID (Hardkernel_Odroid-N2+.log). Unfortunately, they cannot be booted from the manufacturer's firmware (Petitboot). A firmware with mainline uboot as payload, on the other hand, works out-of-the-box. The only missing element is the fedora ability to build it. The vendor toolchain allows building only in an x86 environment, since the necessary tools are provided as binary-only. Fortunately, there are sources for alternative tools. With these tools and Amlogic's BLOB FIP artifacts, it is possible to create functional firmware on the target platform. I unraveled the complicated build process of the vendor toolchain and created the meson64-tools package, which makes it possible to extend the uboot-tools package (uboot-tools.spec.diff, aarch64-boards.diff) with the firmware for ODROID N2, N2+, C4 and HC4. The package provides the device-specific Amlogic BLOB FIP artifacts and the encoding tool for uboot.bin. More devices can certainly be supported, but only the ones provided are confirmed as functional for now. The firmware can be installed to an SD-card via "dd bs=512 seek=1 conv=notrunc,fsync if=u-boot-meson.bin of=/dev/${microSD-card-used}". For an eMMC storage it is the same command, while for SPI flash you have to use "dd conv=notrunc,fsync if=u-boot-meson.bin of=/dev/mtd0".

Comment 1 billiboy 2023-04-02 14:27:40 UTC
Created attachment 1955306 [details]
meson64-tools

Comment 2 billiboy 2023-04-02 14:28:28 UTC
Created attachment 1955307 [details]
ODROID firmware support

Comment 3 billiboy 2023-04-02 14:29:25 UTC
Created attachment 1955308 [details]
Build enable

Comment 4 Peter Robinson 2023-04-02 15:26:45 UTC
The last I looked we weren't allowed to redistribute the odroid signed binary bits which means we can't include them in Fedora. It would need to be done somewhere like rpm-fusion. The ODroid company has never been particularly friendly to other distros/communities.

Comment 5 Dan HorĂ¡k 2023-04-02 15:32:50 UTC
And this is still the case, unless the reporter received an approval from Amlogic.

The LICENSE file in amlogic-boot-fip-20230402.tar.xz contains
...
// Redistribution and use in source and binary forms, with or without
// modification is strictly prohibited without prior written permission
// from Amlogic.
...

This makes it impossible to include it for any repo. And we need to ask the admins to remove the offending attachment ...