Author Topic: TE0802 cannot boot from SD card(/dev/mmcblk0p2)  (Read 6149 times)

pluto

  • Active Member
  • *
  • Posts: 7
TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« on: August 22, 2020, 07:02:37 AM »
Hello,

On TE0802(TE0802-02-2AEU2-A), I tried  booting  Linux by Ubuntu rootfs from SD card, however console displayed kernel panic. :(
Code: [Select]
[   12.760939] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)(from attached file)

It may be due to the SD card partition being set to Read Only.

Code: [Select]
[   12.600858] mmcblk0: mmc0:59b4 USDU1 14.9 GiB (ro)
It also happens when running on another SD card.
From the TE0802 schematic, there is no signal to Write Protect the SD I/F.

Is there a way to boot from the SD card partition, specifically /dev/mmcblk0p2?

The following is the boot log.
Code: [Select]
U-Boot 2020.01 (Aug 21 2020 - 13:23:48 +0000)

Board: Xilinx ZynqMP
DRAM:  1023 MiB
usb dr_mode not found
PMUFW:  v1.1
EL Level:       EL2
Chip ID:        zu2cg
NAND:  0 MiB
MMC:   mmc@ff160000: 0
In:    serial@ff000000
Out:   serial@ff000000
Err:   serial@ff000000
Bootmode: SD_MODE
Reset reason:   EXTERNAL
Net:
ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr -1, interface rgmii-id

Warning: ethernet@ff0e0000 using MAC address from DT
eth0: ethernet@ff0e0000
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
2007 bytes read in 16 ms (122.1 KiB/s)
## Executing script at 20000000
8175472 bytes read in 659 ms (11.8 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x100000f8
     Data Size:    8135437 Bytes = 7.8 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x00080000
     Entry Point:  0x00080000
     Hash algo:    sha256
     Hash value:   a6d2484335f8f8db23bc5714fb2e966433752568128a0c0ae9daaaa893595c21
   Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'fdt@system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x107c2518
     Data Size:    38126 Bytes = 37.2 KiB
     Architecture: AArch64
     Hash algo:    sha256
     Hash value:   0193163552927eedad679679552cf67aef7b371e455e747374a9b555cc80666f
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x107c2518
   Uncompressing Kernel Image
   Loading Device Tree to 000000000fff3000, end 000000000ffff4ed ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.4.0-xilinx-v2020.1 (oe-user@oe-host) (gcc version 9.2.0 (GCC)) #1 SMP Fri Aug 21 13:13:07 UTC 2020
[    0.000000] Machine model: xlnx,zynqmp
.
.
.
[   12.329569] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
[   12.337838] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   12.345054] usb usb1: Product: xHCI Host Controller
[   12.349923] usb usb1: Manufacturer: Linux 5.4.0-xilinx-v2020.1 xhci-hcd
[   12.356297] mmc0: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit
[   12.356529] usb usb1: SerialNumber: xhci-hcd.0.auto
[   12.369049] rtc_zynqmp ffa60000.rtc: setting system clock to 1970-01-01T00:00:14 UTC (14)
[   12.377234] of_cfs_init
[   12.377614] hub 1-0:1.0: USB hub found
[   12.379729] of_cfs_init: OK
[   12.383463] hub 1-0:1.0: 1 port detected
[   12.386414] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   12.390401] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[   12.403393] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[   12.411060] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
[   12.417709] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[   12.425939] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.04
[   12.434210] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   12.441437] usb usb2: Product: xHCI Host Controller
[   12.446310] usb usb2: Manufacturer: Linux 5.4.0-xilinx-v2020.1 xhci-hcd
[   12.452919] usb usb2: SerialNumber: xhci-hcd.0.auto
[   12.458129] hub 2-0:1.0: USB hub found
[   12.461945] hub 2-0:1.0: 1 port detected
[   12.535226] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   12.541981] zynqmp_pll_disable() clock disable failed for dpll_int, ret = -13
[   12.549940] ALSA device list:
[   12.552911]   #0: DisplayPort monitor
[   12.557252] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[   12.565874] cfg80211: failed to load regulatory.db
[   12.574060] Waiting for root device /dev/mmcblk0p2...
[   12.593432] mmc0: new ultra high speed SDR104 SDHC card at address 59b4
[   12.600858] mmcblk0: mmc0:59b4 USDU1 14.9 GiB (ro)
[   12.607396]  mmcblk0: p1 p2
[   12.626188] VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2): error -30
[   12.634192] Please append a correct "root=" boot option; here are the available partitions:
[   12.642544] 0100           65536 ram0
[   12.642546]  (driver?)
[   12.648637] 0101           65536 ram1
[   12.648638]  (driver?)
[   12.654727] 0102           65536 ram2
[   12.654728]  (driver?)
[   12.660814] 0103           65536 ram3
[   12.660815]  (driver?)
[   12.666912] 0104           65536 ram4
[   12.666913]  (driver?)
[   12.673001] 0105           65536 ram5
[   12.673002]  (driver?)
[   12.679103] 0106           65536 ram6
[   12.679105]  (driver?)
[   12.685196] 0107           65536 ram7
[   12.685197]  (driver?)
[   12.691297] 0108           65536 ram8
[   12.691298]  (driver?)
[   12.697392] 0109           65536 ram9
[   12.697393]  (driver?)
[   12.703491] 010a           65536 ram10
[   12.703492]  (driver?)
[   12.709665] 010b           65536 ram11
[   12.709666]  (driver?)
[   12.715850] 010c           65536 ram12
[   12.715851]  (driver?)
[   12.722031] 010d           65536 ram13
[   12.722032]  (driver?)
[   12.728206] 010e           65536 ram14
[   12.728207]  (driver?)
[   12.734392] 010f           65536 ram15
[   12.734393]  (driver?)
[   12.740574] b300        15588352 mmcblk0
[   12.740576]  driver: mmcblk
[   12.747366]   b301         1048576 mmcblk0p1 f18919ee-01
[   12.747367]
[   12.754153]   b302        14538752 mmcblk0p2 f18919ee-02
[   12.754154]
[   12.760939] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
[   12.769370] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.0-xilinx-v2020.1 #1
[   12.776489] Hardware name: xlnx,zynqmp (DT)
[   12.780657] Call trace:
[   12.783101]  dump_backtrace+0x0/0x140
[   12.786751]  show_stack+0x14/0x20
[   12.790064]  dump_stack+0xac/0xd0
[   12.793366]  panic+0x140/0x2f8
[   12.796417]  mount_block_root+0x1d0/0x284
[   12.800412]  mount_root+0x124/0x158
[   12.803884]  prepare_namespace+0x15c/0x1a4
[   12.807965]  kernel_init_freeable+0x234/0x258
[   12.812319]  kernel_init+0x10/0xfc
[   12.815710]  ret_from_fork+0x10/0x18
[   12.819278] SMP: stopping secondary CPUs
[   12.823193] Kernel Offset: disabled
[   12.826670] CPU features: 0x0002,20002004
[   12.830670] Memory Limit: none
[   12.833717] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2) ]---

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #1 on: August 24, 2020, 06:31:49 AM »
Hello,

how did you formate your SD?

How did you generate kernel, device tree, fsbl, bl31, pmu? Did you use correct PS setup? Which Vivado / Petalinux version did you use?

We have a reference design with RAM Disk online(file system will load into RAM) . Reference design includes prebuilt Boot.bin and image.ub.

https://wiki.trenz-electronic.de/display/PD/TE0802+Test+Board
Do this works?

br
John


pluto

  • Active Member
  • *
  • Posts: 7
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #2 on: August 24, 2020, 12:16:24 PM »
Hello,

Quote
how did you formate your SD?

Attached is a screenshot of the SD partition through the gparted tool.
BOOT.BIN, boot.scr and image.ub are on the first partision.
Ubuntu rootfs is on the second one.

Quote
How did you generate kernel, device tree, fsbl, bl31, pmu? Did you use correct PS setup? Which Vivado / Petalinux version did you use?

I generated those files using Petalinux tool. The version is 2020.1.
I modifed project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi as below:

Code: [Select]
/include/ "system-conf.dtsi"
/ {
    chosen {
        bootargs = "console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio";
    };
};


Since I used your board file(board_files/TE0802_2CG_1E/2.0/), I can assume that the PS settings are correct.
The vivado version I used is 2019.2.

Quote
https://wiki.trenz-electronic.de/display/PD/TE0802+Test+Board
Do this works?
Yes, I copied BOOT.bin, which is in TE0802-test_board-vivado_2019.2-build_12_20200602111955/test_board/prebuilt/boot_images/2cg_i1gb/u-boot to SD card.
I confirmed the U-Boot's console message and blinking LEDs on the TE0802.
« Last Edit: August 24, 2020, 12:25:15 PM by pluto »

ycalderon

  • Active Member
  • *
  • Posts: 4
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #3 on: August 24, 2020, 01:50:36 PM »
Hi.

We managed to boot petalinux in te0802 from sd card. Here are some of the key points we found:

1. Ensure that the board is set to boot from SD. There are little switches next to the VGA output. They should be like this:
     
    1 - *
    2 - *
    3 * -
    4 * -

2. The SD card partitions should look like this:
    4Mb         unallocated
    60Mb        fat32       BOOT
    all remain  ext4        rootfs

3. In the menu that will pop when you execute $petalinux-config --get-hw-description=<path-to-hdf-or-xsa>. Select the following:
    Image Packaging Configuration tab
         Root Filesystem Type
             SD card
         device node of SD device
             /dev/mmcblk0p2
    Subsystem AUTO Hardware Settings
         SD/SDIO Settings
             Primary SD/SDIO
                 psu_sd_0

4. In the menu that pop when you run $ petalinux-config -c u-boot . Select the following:
    Environment
     Environment is in SPI flash

Is important to do this step just before building petalinux. Running $ petalinux-config -c kernel overwrites your selections for u-boot.

5. After copying your BOOT.bin and image.ub to BOOT partition, and extracting rootfs.tar.gz in the rootfs partition, execute $ sync . I've found out that sometimes the umount comand fails leaving empty files.

6. When booting intercept the boot in the count down and edit bootargs.
ZynqMP> setenv bootargs 'console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rootfstype=ext4 ru rootwait'

When you create the BOOT.bin with petalinux-package --boot --fsbl <your-folder>/zynqmp_fsbl.elf --fpga <you-folder>/system.bit --u-boot --pmufw <your-folder>/pmufw.elf , use the fsbl provided by trenz on the test_board project. Otherwise the ethernet would not work.

This has worked for us. Hope it helps.
« Last Edit: August 24, 2020, 01:54:05 PM by ycalderon »

pluto

  • Active Member
  • *
  • Posts: 7
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #4 on: August 24, 2020, 03:34:04 PM »
Hi,

Thank you for your advice. However, the issue has not been solved...
(kernel panic)

There is a thing I'd like to be sure about.

Quote
4. In the menu that pop when you run $ petalinux-config -c u-boot . Select the following:
    Environment
     Environment is in SPI flash

Is this setting correct in attached file? May I not have to set other select?

ycalderon

  • Active Member
  • *
  • Posts: 4
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #5 on: August 24, 2020, 03:55:31 PM »
Different petalinux version. We're using 2019.2. This is how it looks for me.

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #6 on: August 25, 2020, 07:06:41 AM »
Hi pluto,
I would also recommend to use 19.2 like ycalderon suggested.

it's important that you always use same version from Vivado/Vitis(SDK) and petalinux. Xilinx change procedure sometime between different version, so it can happens that same configuration like on an older petalinux version doesn't work on a newer one.

Important for SD rootfs are the boot args( you can modify boot args on runtime like  ycalderon suggested):
"6. When booting intercept the boot in the count down and edit bootargs.
ZynqMP> setenv bootargs 'console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rootfstype=ext4 ru rootwait'"

--> you can also do this in the device tree. We have done it with our TE080x series:

https://wiki.trenz-electronic.de/display/PD/TE0808+SK+Demo1#TE0808SKDemo1-DeviceTree
Code: [Select]
/ {
  chosen {
        bootargs= "console=ttyPS0,115200 earlycon clk_ignore_unused earlyprintk root=/dev/mmcblk1p2 rootfstype=ext4 rw rootwait cma=1024M";
  };
};

with the ram disk prebuilts you can check if your second portion will be mounted as "/dev/mmcblk0p2" or  "/dev/mmcblk1p2" and if this is also WP on the prebuilts (I didn't thing so).



You can also add "disable-wp;" to the SD part of the device tree, in case WP is  really the problem in your case.


br
John
 

pluto

  • Active Member
  • *
  • Posts: 7
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #7 on: August 25, 2020, 11:46:35 AM »
Hi,

I ran it the way ycalderon suggested with Petalinux 2019.2.
But the console displayed kernel panic with same cause.
What should I do?

Code: [Select]
[    8.987766] mmcblk0: mmc0:59b4 USDU1 14.9 GiB (ro)

Code: [Select]
U-Boot 2019.01 (Aug 25 2020 - 09:21:25 +0000)

Board: Xilinx ZynqMP
DRAM:  1023 MiB
usb dr_mode not found
EL Level:       EL2
Chip ID:        zu2cg
MMC:   mmc@ff160000: 0
Loading Environment from SPI Flash... SF: Detected n25q256 with page size 256 Bytes, erase size 64 KiB, total 32 MiB
*** Warning - bad CRC, using default environment

In:    serial@ff000000
Out:   serial@ff000000
Err:   serial@ff000000
Board: Xilinx ZynqMP
Bootmode: SD_MODE
Reset reason:   EXTERNAL
Net:   ZYNQ GEM: ff0e0000, phyaddr ffffffff, interface rgmii-id
eth0: ethernet@ff0e0000
U-BOOT for peta

ethernet@ff0e0000 Waiting for PHY auto negotiation to complete......................................... TIMEOUT !
Hit any key to stop autoboot:  0
ZynqMP> setenv bootargs 'console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rootfstype=ext4 ru rootwait'
ZynqMP> boot
Device: mmc@ff160000
Manufacturer ID: 74
OEM: 4a60
Name: USDU1
Bus Speed: 50000000
Mode : SD High Speed (50MHz)
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 14.9 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
18115388 bytes read in 1571 ms (11 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x10000104
     Data Size:    18082304 Bytes = 17.2 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x00080000
     Entry Point:  0x00080000
     Hash algo:    sha1
     Hash value:   f3fe1fd7fa9bd505d14156d817d614198e56a1d8
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'fdt@system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x1113ec08
     Data Size:    31166 Bytes = 30.4 KiB
     Architecture: AArch64
     Hash algo:    sha1
     Hash value:   6e15340395ac26080c35d7f25ac742eed0d67fe6
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x1113ec08
   Loading Kernel Image ... OK
   Loading Device Tree to 0000000007ff5000, end 0000000007fff9bd ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 4.19.0-xilinx-v2019.2 (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP Tue Aug 25 09:07:55 UTC 2020
[    0.000000] Machine model: xlnx,zynqmp
:
:
:
[    8.980031] mmc0: new ultra high speed SDR104 SDHC card at address 59b4
[    8.981491] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    8.987766] mmcblk0: mmc0:59b4 USDU1 14.9 GiB (ro)
[    8.993389] zynqmp_pll_disable() clock disable failed for dpll_int, ret = -13
[    8.999238]  mmcblk0: p1 p2
[    9.005871] ALSA device list:
[    9.010795]   #0: DisplayPort monitor
[    9.015351] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    9.023978] cfg80211: failed to load regulatory.db
[    9.030615] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
[    9.037937] EXT4-fs (mmcblk0p2): write access unavailable, cannot proceed (try mounting with noload)
[    9.047116] VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2): error -30
[    9.055110] Please append a correct "root=" boot option; here are the available partitions:
[    9.063462] 0100           65536 ram0
[    9.063464]  (driver?)
[    9.069563] 0101           65536 ram1
[    9.069564]  (driver?)
[    9.075651] 0102           65536 ram2
[    9.075652]  (driver?)
[    9.081749] 0103           65536 ram3
[    9.081751]  (driver?)
[    9.087842] 0104           65536 ram4
[    9.087844]  (driver?)
[    9.093927] 0105           65536 ram5
[    9.093928]  (driver?)
[    9.100011] 0106           65536 ram6
[    9.100013]  (driver?)
[    9.106096] 0107           65536 ram7
[    9.106098]  (driver?)
[    9.112189] 0108           65536 ram8
[    9.112191]  (driver?)
[    9.118278] 0109           65536 ram9
[    9.118280]  (driver?)
[    9.124377] 010a           65536 ram10
[    9.124378]  (driver?)
[    9.130552] 010b           65536 ram11
[    9.130553]  (driver?)
[    9.136737] 010c           65536 ram12
[    9.136738]  (driver?)
[    9.142912] 010d           65536 ram13
[    9.142914]  (driver?)
[    9.149096] 010e           65536 ram14
[    9.149098]  (driver?)
[    9.155273] 010f           65536 ram15
[    9.155274]  (driver?)
[    9.161462] 1f00            1024 mtdblock0
[    9.161464]  (driver?)
[    9.167994] 1f01             256 mtdblock1
[    9.167996]  (driver?)
[    9.174516] 1f02           22528 mtdblock2
[    9.174518]  (driver?)
[    9.181037] b300        15588352 mmcblk0
[    9.181039]  driver: mmcblk
[    9.187826]   b301           61440 mmcblk0p1 f18919ee-01
[    9.187827]
[    9.194609]   b302        15522816 mmcblk0p2 f18919ee-02
[    9.194611]
[    9.201400] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
[    9.209830] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.19.0-xilinx-v2019.2 #1
[    9.217037] Hardware name: xlnx,zynqmp (DT)
[    9.221204] Call trace:
[    9.223665]  dump_backtrace+0x0/0x148
[    9.227316]  show_stack+0x14/0x20
[    9.230630]  dump_stack+0x90/0xb4
[    9.233931]  panic+0x120/0x268
[    9.236979]  mount_block_root+0x1b0/0x260
[    9.240976]  mount_root+0x11c/0x148
[    9.244448]  prepare_namespace+0x158/0x1a0
[    9.248529]  kernel_init_freeable+0x1b8/0x1d4
[    9.252878]  kernel_init+0x10/0xfc
[    9.256272]  ret_from_fork+0x10/0x18
[    9.259844] SMP: stopping secondary CPUs
[    9.263756] Kernel Offset: disabled
[    9.267234] CPU features: 0x0,20802004
[    9.270966] Memory Limit: none
[    9.274012] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2) ]---

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #8 on: August 25, 2020, 12:27:33 PM »
Hi,
is  wp enabled when you boot the reference design prebuilts? -->leave your ext4 partition but replace Boot.bin and image.ub on the fat32 partition with prebuilt one.  Start and check partiions with the running linux. Do you see "mmcblk0p2" there? And is it write protect or not?

For your design " You can also add "disable-wp;" to the SD part of the device tree, in case WP is  really the problem in your case."
And check if WP is enabled in your Vivado design. --> I've checked again reference design and board part files, WP is not enabled.

br
John

pluto

  • Active Member
  • *
  • Posts: 7
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #9 on: August 25, 2020, 01:12:42 PM »
Hi,

Quote
is  wp enabled when you boot the reference design prebuilts? -->leave your ext4 partition but replace Boot.bin and image.ub on the fat32 partition with prebuilt one.  Start and check partiions with the running linux. Do you see "mmcblk0p2" there? And is it write protect or not?

After replacing them, I can see ext4 partition and write a file on it.
Code: [Select]
PetaLinux 2019.2 petalinux /dev/ttyPS0

petalinux login: root
Password:
root@petalinux:~# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mtdblock0    31:0    0    1M  0 disk
mtdblock1    31:1    0  256K  0 disk
mtdblock2    31:2    0   22M  0 disk
mmcblk0     179:0    0 14.9G  0 disk
|-mmcblk0p1 179:1    0   60M  0 part /run/media/mmcblk0p1
`-mmcblk0p2 179:2    0 14.8G  0 part /run/media/mmcblk0p2
root@petalinux:~# cd /run/media/mmcblk0p2
root@petalinux:/run/media/mmcblk0p2# dd if=/dev/zero of=1M.file bs=1M count=1
1+0 records in
1+0 records out
root@petalinux:/run/media/mmcblk0p2# ls -al
total 1108
drwxr-xr-x   19 root     root          4096 May 26 20:53 .
drwxr-xr-x    4 root     root            80 May 26 20:47 ..
-rw-r--r--    1 root     root       1048576 May 26 20:53 1M.file
Quote
For your design " You can also add "disable-wp;" to the SD part of the device tree, in case WP is  really the problem in your case."
And check if WP is enabled in your Vivado design. --> I've checked again reference design and board part files, WP is not enabled.
Vivado's IP settings in my design display Write Protection is OFF.
(attached file)

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #10 on: August 25, 2020, 01:34:04 PM »
how looks your device tree?
br
John

pluto

  • Active Member
  • *
  • Posts: 7
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #11 on: August 25, 2020, 01:48:32 PM »
Hi,

In this test, the device tree was not specifically described.
Code: [Select]
/include/ "system-conf.dtsi"
/ {
};

When I created this topic, I set it up as follows.
Code: [Select]
/include/ "system-conf.dtsi"
/ {
    chosen {
        bootargs = "console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio";
    };
};

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #12 on: August 25, 2020, 02:04:06 PM »
Hi,
hm and your xsa is generated with 19.2 and you has create again (from scratch) petalinux with 19.2 petalinux?  No longer mixed design like at the beginning?


try one time

Code: [Select]
/ {
  chosen {
        bootargs= "console=ttyPS0,115200 earlycon clk_ignore_unused earlyprintk root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait cma=1024M";
  };
};

br
John

pluto

  • Active Member
  • *
  • Posts: 7
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #13 on: August 25, 2020, 02:10:40 PM »
After inserting disable-wp, I can boot from ext4 partition.

Code: [Select]
/include/ "system-conf.dtsi"
/ {
};

&sdhci1 {
    disable-wp;
    no-1-8-v;

};


Code: [Select]
U-Boot 2019.01 (May 26 2020 - 20:29:14 +0000)

Board: Xilinx ZynqMP
DRAM:  1023 MiB
EL Level:       EL2
Chip ID:        zu2cg
MMC:   mmc@ff160000: 0
In:    serial@ff000000
Out:   serial@ff000000
Err:   serial@ff000000
Board: Xilinx ZynqMP
Bootmode: SD_MODE
Reset reason:   EXTERNAL
Net:   ZYNQ GEM: ff0e0000, phyaddr 1, interface rgmii-id

Warning: ethernet@ff0e0000 using MAC address from ROM
eth0: ethernet@ff0e0000
U-BOOT for petalinux

ethernet@ff0e0000 Waiting for PHY auto negotiation to complete...... done
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 192.168.1.88 (591 ms)
Hit any key to stop autoboot:  0
ZynqMP> setenv bootargs 'console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait'
ZynqMP> boot
Device: mmc@ff160000
Manufacturer ID: 74
OEM: 4a60
Name: USDU1
Bus Speed: 50000000
Mode : SD High Speed (50MHz)
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 14.9 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
36161476 bytes read in 3132 ms (11 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x10000104
     Data Size:    18283008 Bytes = 17.4 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x00080000
     Entry Point:  0x00080000
     Hash algo:    sha1
     Hash value:   6adfee27b257bedb7055e873ac4e4ecbaf339839
   Verifying Hash Integrity ... sha1+ OK
## Loading ramdisk from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'ramdisk@1' ramdisk subimage
     Description:  petalinux-user-image
     Type:         RAMDisk Image
     Compression:  gzip compressed
     Data Start:   0x1117762c
     Data Size:    17845256 Bytes = 17 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: unavailable
     Entry Point:  unavailable
     Hash algo:    sha1
     Hash value:   e935ba88956df07ea5575b01b553f94283f78068
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'fdt@system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x1116fc08
     Data Size:    31071 Bytes = 30.3 KiB
     Architecture: AArch64
     Hash algo:    sha1
     Hash value:   a0b37e1b8ba030ee3f03ec3a064978068f7e8ee0
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x1116fc08
   Loading Kernel Image ... OK
   Loading Ramdisk to 37efb000, end 38fffc08 ... OK
   Loading Device Tree to 0000000007ff5000, end 0000000007fff95e ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 4.19.0-xilinx-v2019.2 (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP Tue May 26 20:27:54 UTC 2020
[    0.000000] Machine model: xlnx,zynqmp
:
:
[   13.582011] mmc0: new high speed SDHC card at address 59b4
[   13.588816] mmcblk0: mmc0:59b4 USDU1 14.9 GiB
[   13.595466]  mmcblk0: p1 p2
[   13.688557] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   13.695315] zynqmp_pll_disable() clock disable failed for dpll_int, ret = -13
[   13.703242] ALSA device list:
[   13.706197]   #0: DisplayPort monitor
[   13.710414] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[   13.719026] cfg80211: failed to load regulatory.db
[   13.724499] Freeing unused kernel memory: 832K
[   13.742799] Run /init as init process
INIT: version 2.88 booting
Starting udev
[   13.912845] udevd[1799]: starting version 3.2.5
[   13.923098] udevd[1800]: starting eudev-3.2.5
[   15.003744] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[   15.130151] EXT4-fs (mmcblk0p2): recovery complete
[   15.134976] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
Tue May 26 20:44:50 UTC 2020
:
:
Starting internet superserver: inetd.
Init Start
Init End
Starting syslogd/klogd: done
Starting tcf-agent: OK

PetaLinux 2019.2 petalinux /dev/ttyPS0

petalinux login: root
Password:
root@petalinux:~# df -h
Filesystem                Size      Used Available Use% Mounted on
devtmpfs                357.6M      4.0K    357.6M   0% /dev
tmpfs                   494.5M    124.0K    494.4M   0% /run
tmpfs                   494.5M     76.0K    494.4M   0% /var/volatile
/dev/mmcblk0p1           59.1M     37.5M     21.6M  63% /run/media/mmcblk0p1
/dev/mmcblk0p2           14.5G     56.1M     13.7G   0% /run/media/mmcblk0p2


Thank you very much for your cooperation.

pluto

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #14 on: August 25, 2020, 02:21:22 PM »
Hi,
ok fine.

It's only strange that you must add this attribute , so something is different between your 19.2 generation this one from ycalderon  and my one .

br
John

lalit

  • Active Member
  • *
  • Posts: 6
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #15 on: June 18, 2021, 11:08:40 PM »
I'm trying to do similar with TE0820 using Vivado and PetaLinux 2020.2 and having problems.

I am able to boot using QSPI and having boot and rootfs partitions on SD Card. But I need to boot kernel and rootfs from eMMC.
I have already created partitions on eMMC where image.ub, boot.scr are on first bootable partition and second ext4 partition has rootfs.

In PetaLinux config I have changed rootfs partition to /dev/mmcblk0p2 which is for eMMC but when I boot the board, bootup stops and waits for SD partition.
[ 4.101958] Waiting for root device /dev/mmcblk1p2...

In bootlog I can see that bootargs are set to point to /dev/mmcblk1p2 which is SD card partition.
[ 0.000000] Kernel command line: earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/mmcblk1p2 rw rootwait cma=1000M cpuidle.off=1

When I interrupt the boot and manually enter bootargs and then boot the board without having SD card inserted in the slot, I'm able to boot properly.
ZynqMP> setenv bootargs "earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait cma=1024M cpuidle.off=1"

I have also added the following in project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi but did not help.
/ {
chosen {
bootargs= "earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait cma=1024M cpuidle.off=1";
};
};

How do I get these bootargs to save? Is there anything else I can try?
Thanks!

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Re: TE0802 cannot boot from SD card(/dev/mmcblk0p2)
« Reply #16 on: June 21, 2021, 08:52:19 AM »