* Inconsistent "compatible" string for Terasic DE0-Nano-SoC / Atlas SoC Kit
@ 2021-11-02 14:22 Ian Abbott
2021-11-04 19:55 ` Sascha Hauer
0 siblings, 1 reply; 2+ messages in thread
From: Ian Abbott @ 2021-11-02 14:22 UTC (permalink / raw)
To: barebox
Hi there!
I have a slight issue getting BootLoaderSpec entries for Terasic
DE0-Nano-SoC to work:
barebox@Terasic DE0-Nano-SoC/Atlas-SoC Kit:/ boot mmc0
blspec: ignoring entry with incompatible devicetree "terasic,de0-atlas"
Nothing bootable found on 'mmc0'
Nothing bootable found
From the (recent) Linux kernel sources
"arch/arm/boot/dts/socfpga_cyclone5_de0_nano_soc.dts":
model = "Terasic DE-0(Atlas)";
compatible = "terasic,de0-atlas", "altr,socfpga-cyclone5", "altr,socfpga";
Of course, the above compatible string matches the barebox source
"dts/src/arm/socfpga_cyclone5_de0_nano_soc.dts" file.
However the "model" and "compatible" strings get overridden by the
barebox source "arch/arm/dts/socfpga_cyclone5_de0_nano_soc.dts":
model = "Terasic DE0-Nano-SoC/Atlas-SoC Kit";
compatible = "terasic,de0-nano-soc","altr,socfpga-cyclone5",
"altr,socfpga";
The socfpga_init() function in
"arch/arm/boards/terasic-de0-nano-soc/board.c" also checks the
"compatible" string for registering a PHY fixup:
static int socfpga_init(void)
{
if (!of_machine_is_compatible("terasic,de0-nano-soc"))
return 0;
if (IS_ENABLED(CONFIG_PHYLIB))
phy_register_fixup_for_uid(PHY_ID_KSZ9031, MICREL_PHY_ID_MASK, phy_fixup);
return 0;
}
I think I can get everything working by changing barebox's "compatible"
string to the following:
compatible = "terasic,de0-atlas", "terasic,de0-nano-soc",
"altr,socfpga-cyclone5", "altr,socfpga";
Then the socfpga_init() function and the blspec loader should both be happy.
--
-=( Ian Abbott <abbotti@mev.co.uk> || MEV Ltd. is a company )=-
-=( registered in England & Wales. Regd. number: 02862268. )=-
-=( Regd. addr.: S11 & 12 Building 67, Europa Business Park, )=-
-=( Bird Hall Lane, STOCKPORT, SK3 0XA, UK. || www.mev.co.uk )=-
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Inconsistent "compatible" string for Terasic DE0-Nano-SoC / Atlas SoC Kit
2021-11-02 14:22 Inconsistent "compatible" string for Terasic DE0-Nano-SoC / Atlas SoC Kit Ian Abbott
@ 2021-11-04 19:55 ` Sascha Hauer
0 siblings, 0 replies; 2+ messages in thread
From: Sascha Hauer @ 2021-11-04 19:55 UTC (permalink / raw)
To: Ian Abbott; +Cc: barebox
Hi Ian,
On Tue, Nov 02, 2021 at 02:22:51PM +0000, Ian Abbott wrote:
> Hi there!
>
> I have a slight issue getting BootLoaderSpec entries for Terasic
> DE0-Nano-SoC to work:
>
> barebox@Terasic DE0-Nano-SoC/Atlas-SoC Kit:/ boot mmc0
> blspec: ignoring entry with incompatible devicetree "terasic,de0-atlas"
> Nothing bootable found on 'mmc0'
> Nothing bootable found
>
> From the (recent) Linux kernel sources
> "arch/arm/boot/dts/socfpga_cyclone5_de0_nano_soc.dts":
>
> model = "Terasic DE-0(Atlas)";
> compatible = "terasic,de0-atlas", "altr,socfpga-cyclone5", "altr,socfpga";
>
> Of course, the above compatible string matches the barebox source
> "dts/src/arm/socfpga_cyclone5_de0_nano_soc.dts" file.
>
> However the "model" and "compatible" strings get overridden by the barebox
> source "arch/arm/dts/socfpga_cyclone5_de0_nano_soc.dts":
>
> model = "Terasic DE0-Nano-SoC/Atlas-SoC Kit";
> compatible = "terasic,de0-nano-soc","altr,socfpga-cyclone5",
> "altr,socfpga";
>
> The socfpga_init() function in
> "arch/arm/boards/terasic-de0-nano-soc/board.c" also checks the "compatible"
> string for registering a PHY fixup:
>
> static int socfpga_init(void)
> {
> if (!of_machine_is_compatible("terasic,de0-nano-soc"))
> return 0;
>
> if (IS_ENABLED(CONFIG_PHYLIB))
> phy_register_fixup_for_uid(PHY_ID_KSZ9031, MICREL_PHY_ID_MASK, phy_fixup);
>
> return 0;
> }
>
> I think I can get everything working by changing barebox's "compatible"
> string to the following:
>
> compatible = "terasic,de0-atlas", "terasic,de0-nano-soc",
> "altr,socfpga-cyclone5", "altr,socfpga";
You can drop the model and compatible properties from
arch/arm/dts/socfpga_cyclone5_de0_nano_soc.dts and change the
of_machine_is_compatible check to the upstream dts string. I don't think
we have a good reason to keep the terasic,de0-nano-soc compatible.
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-11-04 19:56 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-02 14:22 Inconsistent "compatible" string for Terasic DE0-Nano-SoC / Atlas SoC Kit Ian Abbott
2021-11-04 19:55 ` Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox