[PATCH v4] Terasic DE0-Nano-SoC: add support
Tim Sander
tim at krieglstein.org
Thu Feb 11 06:40:41 PST 2016
Hi
Am Montag, 1. Februar 2016, 11:08:10 schrieb Andrey Smirnov:
...
> > diff --git a/arch/arm/boards/terasic-de0-nano-soc/board.c
> > b/arch/arm/boards/terasic-de0-nano-soc/board.c new file mode 100644
> > index 0000000..22f8291
> > --- /dev/null
> > +++ b/arch/arm/boards/terasic-de0-nano-soc/board.c
> > @@ -0,0 +1,37 @@
> > +#include <common.h>
> > +#include <types.h>
> > +#include <driver.h>
> > +#include <init.h>
> > +#include <asm/armlinux.h>
> > +#include <linux/micrel_phy.h>
> > +#include <linux/phy.h>
> > +#include <linux/sizes.h>
> > +#include <fcntl.h>
> > +#include <fs.h>
> > +#include <mach/socfpga-regs.h>
> > +
> > +static int phy_fixup(struct phy_device *dev)
> > +{
> > + /* min rx data delay */
> > + phy_write(dev, 0x0b, 0x8105);
> > + phy_write(dev, 0x0c, 0x0000);
> > +
> > + /* max rx/tx clock delay, min rx/tx control delay */
> > + phy_write(dev, 0x0b, 0x8104);
> > + phy_write(dev, 0x0c, 0xa0d0);
> > + phy_write(dev, 0x0b, 0x104);
> > +
> > + return 0;
> > +}
> > +
> > +static int socfpga_console_init(void)
>
> I know that this names comes from the source code for SoCKit, but I'd
> argue that the name of this function should be changed to something
> more descriptive. This function doesn't really initialize console in
> any way and just happen to be executed on "console_initcall" level of
> execution.
>
> > +{
> > + if (!of_machine_is_compatible("altr,socfpga-cyclone5"))
The string above will be replaced with "terasic,de0-nano-soc" but see below...
> > + return 0;
>
> Since Altera is not really a vendor of this board and, I'd suggest the
> compatibility string be renamed to "terrasic,de0-nano-soc"
Besides that the company is named Terasic i concur with you but there
is one problem: I have now just patched the kernel with the folowing patch to
add the device tree compatiblility information needed:
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
index 555e9caf21e1..3a427423168e 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
@@ -18,7 +18,7 @@
/ {
model = "Terasic DE-0(Atlas)";
- compatible = "altr,socfpga-cyclone5", "altr,socfpga";
+ compatible = "terasic,de0-nano-soc"," altr,socfpga-cyclone5", "altr,socfpga";
chosen {
bootargs = "earlyprintk";
--
1.9.1
But now i have the barebox bootmessage which states the following on boot:
--
blspec: blspec_scan_directory: mmc loader/entries
blspec: blspec_scan_directory: /mnt/mmc0.2 loader/entries
blspec: ignoring entry with incompatible devicetree "terasic,de0-nano-soc"
--
Looking into loader/entries on the SD-card shows the follwing contents of socfpga_cyclone5_de0_sockit.conf:
--
title PTXdist - HBM-Altera Soc Test socfpga_cyclone5_de0_sockit
version 4.4.1
options root=/dev/mmcblk0p3 rootwait rootfstype=ext4 rw
linux /boot/zImage
devicetree /boot/socfpga_cyclone5_de0_sockit.dtb
--
dtc -I dtb -O dts socfpga_cyclone5_de0_sockit.dtb |head outputs
--
/dts-v1/;
/memreserve/ 0x0000000000000000 0x0000000000001000;
/ {
#address-cells = <0x1>;
#size-cells = <0x1>;
model = "Terasic DE-0(Atlas)";
compatible = "terasic,de0-nano-soc", " altr,socfpga-cyclone5", "altr,socfpga";
--
All files are taken directly from the SD-card so i am pretty sure i made no errors there.
But currently i fail to see why this error occurs? I seems to me that all the device tree
magic is in place but unfortunatly barebox does not seem to know...
Best Regards
Tim
More information about the barebox
mailing list