FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5157 Discussions

Trouble Update Partitioning in Device Tree

aleksey2m
Beginner
288 Views

Hi,

I'm try startup Arrow SoCKit evalBoard include CycloneV, used guide "GSRD v13.1 - Booting from QSPI" from rocketboards.org, (https://rocketboards.org/foswiki/Documentation/GSRD131QspiBoot#A._Configure_Preloader_to_Boot_from_Q...

I'm use Ububtu12.04, Quartus 13.1, SoCEDS13.1 and "cv_soc_devkit_ghrd" folder from "quartus/embedded/examples"

In the step "D" need  Edit the file cv_soc_devkit_ghrd/soc_system_board_info.xml: as stated in instruction. But after generation DTB files and replaced it on the SD-MMC card, kernel not started.

I tried to solve this problem by analyzing the source files DTS, using the working version of the DTS file from the original image of SD-MMC. 

I managed to get it to boot up to the command line, but I don't see my expected partitioning:

step "E", point 3: 

Boot Linux and run the following command to verify that the QSPI partitioning is correct:

# cat /proc/mtd

however, this command returns nothing to me:

root@socfpga_cyclone5:~# cat /proc/mtd
dev: size erasesize name
root@socfpga_cyclone5:~#

which says my partitioniing is not applied

I do everything according to the instructions, but I cannot understand why it does not work. I will be grateful for any help

ps:

source file DTS:

 

spi@ff705000 {
compatible = "cadence,qspi";
#address-cells = <0x1>;
#size-cells = <0x0>;
reg = <0xff705000 0x1000 0xffa00000 0x1000>;
interrupts = <0x0 0x97 0x4>;
master-ref-clk = <0x17d78400>;
ext-decoder = <0x0>;
num-chipselect = <0x4>;
fifo-depth = <0x80>;
bus-num = <0x2>;

n25q128@0 {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "n25q128";
reg = <0x0>;
spi-max-frequency = <0x5f5e100>;
page-size = <0x100>;
block-size = <0x10>;
quad = <0x1>;
tshsl-ns = <0xc8>;
tsd2d-ns = <0xff>;
tchsh-ns = <0x14>;
tslch-ns = <0x14>;

partition@0 {
label = "Flash 0 Raw Data";
reg = <0x0 0x800000>;
};

partition@800000 {
label = "Flash 0 jffs2 Filesystem";
reg = <0x800000 0x800000>;
};
};

n25q128@1 {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "n25q128";
reg = <0x1>;
spi-max-frequency = <0x5f5e100>;
page-size = <0x100>;
block-size = <0x10>;
quad = <0x1>;
tshsl-ns = <0xc8>;
tsd2d-ns = <0xff>;
tchsh-ns = <0x14>;
tslch-ns = <0x14>;

partition@0 {
label = "Flash 1 User Data";
reg = <0x0 0x1000000>;
};
};
};

 

editing files i'm try use:

 

flash@0xff705000 {
compatible = "cadence,qspi-1.0", "cadence,qspi";
reg = <0xff705000 0x1000 0xffa00000 0x1000>;
reg-names = "axi_slave0", "axi_slave1";
interrupt-parent = <0x2>;
interrupts = <0x0 0x97 0x4>;
bus-num = <0x2>;
fifo-depth = <0x80>;
num-chipselect = <0x4>;
bank-width = <0x2>;
device-width = <0x1>;
master-ref-clk = <0x17d78400>;
ext-decoder = <0x0>;
#address-cells = <0x1>;
#size-cells = <0x0>;

n25q00@0 {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "n25q00";
reg = <0x0>;
spi-max-frequency = <0x5f5e100>;
page-size = <0x100>;
block-size = <0x10>;
m25p,fast-read;
read-delay = <0x4>;
tshsl-ns = <0x32>;
tsd2d-ns = <0x32>;
tchsh-ns = <0x4>;
tslch-ns = <0x4>;

partition@0 {
label = "Flash 0 Raw Data";
reg = <0x0 0x800000>;
};

partition@800000 {
label = "Flash 1 jffs2 Filesystem";
reg = <0x800000 0x1000000>;
};

partition@1800000 {
label = "FPGA Image";
reg = <0x1800000 0x800000>;
};
};
};

0 Kudos
6 Replies
EricMunYew_C_Intel
Moderator
233 Views

did you build a minimal root filesystem for booting from QSPI.

$ bitbake altera-image-minimal


aleksey2m
Beginner
228 Views

Thanks for the answer!

Ok then next question:
Did I understand correctly that the full file system needs to be deployed to SDMMC in order to be able to access the QSPI, to which the image of the minimal file system can then be written?

Thank you!

EricMunYew_C_Intel
Moderator
214 Views

That's not correct, the minimal root filesystem is meant for QSPI for booting.


aleksey2m
Beginner
209 Views

Thanks, but nevertheless, the answer is not quite clear(

Let me ask differently

Tell me at what point I'm wrong:

I am trying to boot from QSPI, for this I perform the actions in the following order:

1. I create a project to download from SDMMC, make a complete file system in tar.gz format, download succeeds. The full file system gives access to the QSPI and commands such as: "flashcp / mtd_debug write / flash_erase" are available to me
2. I create a project to boot from QSPI, make a minimal file system in jffs2 format, change the boot source in the BSP properties, and so on.
3. I copy the project files from pt. 2 to the memory card in a separate directory
3. I boot from the SDMMC project from pt. 1, I start to write the project files from pt. 2 to QSPI
4. All these processes end successfully
5. I switch the BOOTSEL jumper to load QSPI, reset the power and nothing happens ((
p.s. without an SDMMC memory card, I also cannot get into the U-boot console, I also cannot understand why

maybe there is some nuance that I missed, but I do not see it


grateful for any help!)

EricMunYew_C_Intel
Moderator
198 Views

The tutorial you followed is modified for booting from QSPI, you can remove the SDMMC.


aleksey2m
Beginner
189 Views

no wonder everyone migrates to xilinx with this approach

not a single intelligible answer

Reply