Jump to content

mbritton

Members
  • Posts

    10
  • Joined

  • Last visited

Posts posted by mbritton

  1. JColvin:


    Thank you for your note.

    I neglected to mention in my original email that I'm trying to obtain the ethernet gadget driver.  I made a little more progress by following instructions for the ethernet gadget driver here:

    https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/2046001302/Building+Linux+usb+device+drivers+with+2021.1

     

    I followed the 2021.1 recipe, but am using petalinux 2022.1 in my compilation. 

    - The first attachment shows usb-related additions to the bsp.cfg file. 

    - The second attachment shows additions to the system-user.dtsi file. 

    - The third and fourth attachments show the output from the 'petalinux-build -c kernel' invocation.  The most important output I see is the message "Label or path dwc3_0 not found".

     

    Many thanks

    Matthew

     

     

     

     

     

    bspCfg.png

    systemUserDtsi.png

    petalinuxBuildKernel.png

    petalinuxBuildKernel2.png

  2. Hello:

     

    I would like to operate a Zybo z7-20 board as a USB gadget device and communicate via a linux gadget driver from a host computer running Ubuntu 20.04.  From the zybo reference manual:

     

    9 USB Host/OTG

    The Zybo Z7 implements one of the two available PS USB OTG interfaces on the Zynq device. A Microchip USB3320 USB 2.0 Transceiver Chip with an 8-bit ULPI interface is used as the PHY. The PHY features a complete HS-USB Physical Front-End supporting speeds of up to 480Mbs. The PHY is connected to MIO Bank 1/501, which is powered at 1.8V. The usb0 peripheral is used on the PS, connected through MIO[28-39]. The USB OTG interface can act as an embedded host or a peripheral device. The USB mode is controlled from software by manipulating the USB0 peripheral controller in the Zynq PS. When acting as a peripheral, the USB Micro AB connector (J10) should be used to connect to a USB host device, and JP1 and JP2 should not be shorted.

     

    I compiled the petalinux kernel and root filesystem using default settings for USB support, transferred these to the board via microSD, connected J10 to the host PC via a USB cable, and powered the board. 

    On the petalinux side, I expected to see an entry in /dev like /dev/ttyUSB0 that indicates the USB2.0 is available.  Attached is a screenshot of the /dev directory.  There's an entry /dev/ttyPS0, which I think associates to the jtag port.

    On the ubuntu side, I expected lsusb to indicate a bus/device pair associated with the zybo board.   Attached is a screenshot of the output of lsusb on the ubuntu machine.  The FTDI entry is present only when the zybo board is powered, but I'm uncertain as to whether this entry is associated with the jtab port.

    The third screenshot displays output of lsmod and `modprobe -l | grep -i usb` on the petalinux side.  I think the presence of gadget drivers should indicate that the usb driver is present in the kernel.

    I'm confused about how to proceed:  have I correctly compiled USB gadget support into the petalinux kernel, and if so why don't I see a /dev entry on the petalinux side and a bus/device enumeration on the ubuntu side?  Or am I simply misinterpreting the output attached below?

     

    Many thanks
    Matthew

     

     

    petalinuxDevDir.png

    ubuntulsusb.png

    petalinuxLsusbModprobe.png

  3. Zygot:


    Thank you for sharing your thoughts. 

    My response is to note that the Zybo Z7 board is advertised as supporting Petalinux.  To build the Petalinux kernel requires the Yocto package manager to retrieve the packages at least once over the internet.  After retrieving the packages, one could adopt your perspective of not relying on internet access to update the Petalinux kernel via Yocto package manager.  However, package download does need to work over the internet at least once, I think.

     

    As I understand it and have implemented it, the Petalinux build procedure requires a configuration step via petalinux-config that takes the board support package as an argument.  Then one runs petalinux-build -c kernel to build the kernel.  I think this second step fails because of a missing .dtsi file for the Zybo Z7 board that should come from the package manager.  There may have been some upgrade of the package manager that implemented a new directory structure, and Digilent hasn't yet adhered to the new standard.  (I'm speculating here).

    Regardless, right now I cannot build the Petalinux kernel using the commands that worked for me last week.

     

    Just my thoughts... pls share your own

     

    Many thanks

    Matthew

  4. Hello:

    I have been successfully compiling Petalinux for a Zybo Z7-20 board for the past ~6 weeks.  On May 1st the Petalinux kernel build started failing: 

    petalinux-build  -c kernel

    with the message content

    NOTE: Executing Tasks
    ERROR: device-tree-xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0 do_compile: Error executing a python function in exec_func_python() autogenerated:

    The stack trace of python calls that resulted in this exception/failure was:
    File: 'exec_func_python() autogenerated', lineno: 2, function: <module>
         0001:
     *** 0002:devicetree_do_compile(d)
         0003:
    File: '/mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/components/yocto/layers/core/meta/classes/devicetree.bbclass', lineno: 131, function: devicetree_do_compile
         0127:            if not(os.path.isfile(dtspath)) or not(dts.endswith(".dts") or devicetree_source_is_overlay(dtspath)):
         0128:                continue # skip non-.dts files and non-overlay files
         0129:        except:
         0130:            continue # skip if can't determine if overlay
     *** 0131:        devicetree_compile(dtspath, includes, d)
         0132:}
         0133:
         0134:devicetree_do_install() {
         0135:    for DTB_FILE in `ls *.dtb *.dtbo`; do
    File: '/mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/components/yocto/layers/core/meta/classes/devicetree.bbclass', lineno: 119, function: devicetree_compile
         0115:        dtcargs += ["-i", i]
         0116:    dtcargs += ["-o", "{0}.{1}".format(dtname, "dtbo" if isoverlay else "dtb")]
         0117:    dtcargs += ["-I", "dts", "-O", "dtb", "{0}.pp".format(dts)]
         0118:    bb.note("Running {0}".format(" ".join(dtcargs)))
     *** 0119:    subprocess.run(dtcargs, check = True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
         0120:
         0121:python devicetree_do_compile() {
         0122:    includes = expand_includes("DT_INCLUDE", d)
         0123:    listpath = d.getVar("DT_FILES_PATH")
    File: '/mnt/2Tb/tools/Xilinx/PetaLinux/2022.1/components/yocto/buildtools/sysroots/x86_64-petalinux-linux/usr/lib/python3.9/subprocess.py', lineno: 528, function: run
         0524:            # We don't call process.wait() as .__exit__ does that for us.
         0525:            raise
         0526:        retcode = process.poll()
         0527:        if check and retcode:
     *** 0528:            raise CalledProcessError(retcode, process.args,
         0529:                                     output=stdout, stderr=stderr)
         0530:    return CompletedProcess(process.args, retcode, stdout, stderr)
         0531:
         0532:
    Exception: subprocess.CalledProcessError: Command '['dtc', '-@', '-p', '0x1000', '-@', '-i', '/mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work-shared/zynq-generic/kernel-source/arch/arm/boot/dts', '-i', '/mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0', '-i', '/mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/project-spec/configs/../../components/plnx_workspace/device-tree/device-tree', '-i', '/mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work-shared/zynq-generic/kernel-source/scripts/dtc/include-prefixes', '-i', '/mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/git/device_tree/data/kernel_dtsi/2022.1/BOARD/', '-o', 'system-top.dtb', '-I', 'dts', '-O', 'dtb', 'system-top.dts.pp']' returned non-zero exit status 2.

    Subprocess output:
    /mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/system-user.dtsi:80.26-84.9: ERROR (phandle_references): /dma_smm_asymmetric: Reference to non-existent node or label "axi_dma_0"

    /mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/system-user.dtsi:80.26-84.9: ERROR (phandle_references): /dma_smm_asymmetric: Reference to non-existent node or label "axi_dma_0"

    /mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/system-user.dtsi:80.26-84.9: ERROR (phandle_references): /dma_smm_asymmetric: Reference to non-existent node or label "axi_dma_1"

    /mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/system-user.dtsi:80.26-84.9: ERROR (phandle_references): /dma_smm_asymmetric: Reference to non-existent node or label "axi_dma_1"

    ERROR: Input tree has errors, aborting (use -f to force output)

    ERROR: Logfile of failure stored in: /mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/temp/log.do_compile.1592130
    ERROR: Task (/mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/components/yocto/layers/meta-xilinx/meta-xilinx-core/recipes-bsp/device-tree/device-tree.bb:do_compile) failed with exit code '1'

     

    After tracing the problem, I found that the Petalinux/yocto build system had started making a new directory containing board-specific dtsi files.  On my system, the directory is

    /mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/git/device_tree/data/kernel_dtsi/2022.1/BOARD/

    and the directory contains a dtsi file for many types of boards.  For example,

    zc702.dtsi
    zc706.dtsi
    zcu100-reva.dtsi
    zcu100-revb.dtsi
    zcu100-revc.dtsi
    zcu102-rev1.0.dtsi
    zcu102-reva.dtsi
    zcu102-revb.dtsi
    zcu104-reva.dtsi

     

    The Zybo Z7-20 does not seem to me to have a dtsi file.

    Can you pls advise on how to get a petalinux build for the Zybo z7-20 board to succeed?

     

    Many thanks

    Matthew

     

     

     

     

  5. After learning more about the device tree, I've found that I can decompile the system.dtb file created by petalinux:

     

    dtc -I dtb -O dts -f system.dtb -o system.dts

     

    This allows me to inspect the system.dts file and compare them to those at Xilinx's Linux Soft DMA Driver website.

    https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842337/Linux+Soft+DMA+Driver?showComments=true&showCommentArea=true

     

    When I do so, I find entries in system.dts that correspond to the video DMA entry at the above link:

            dma@43000000 {
                #dma-cells = <0x01>;
                clock-names = "s_axi_lite_aclk\0m_axi_s2mm_aclk\0s_axis_s2mm_aclk";
                clocks = <0x01 0x0f 0x1c 0x1c>;
                compatible = "generic-uio";
                interrupt-names = "s2mm_introut";
                interrupt-parent = <0x04>;
                interrupts = <0x00 0x1e 0x04>;
                reg = <0x43000000 0x10000>;
                xlnx,addrwidth = <0x20>;
                xlnx,flush-fsync = <0x01>;
                xlnx,num-fstores = <0x01>;
                phandle = <0x54>;

                dma-channel@43000030 {
                    compatible = "xlnx,axi-vdma-s2mm-channel";
                    interrupts = <0x00 0x1e 0x04>;
                    xlnx,datawidth = <0x18>;
                    xlnx,device-id = <0x00>;
                    xlnx,genlock-mode;
                    xlnx,include-dre;
                };
            };

    The corresponding entry at the above link is

     

    axi_vdma_0: dma@43000000 {
                            #dma-cells = <1>;
                            clock-names = "s_axi_lite_aclk", "m_axi_mm2s_aclk", "m_axi_mm2s_aclk", "m_axi_s2mm_aclk", "m_axi_s2mm_aclk";
                            clocks = <&clkc 15>, <&clkc 15>, <&clkc 15>, <&clkc 15>, <&clkc 15>;
                            compatible = "xlnx,axi-vdma-1.00.a";
                            interrupt-parent = <&intc>;
                            interrupts = <0 32 4 0 33 4>;
                            reg = <0x43000000 0x10000>;
                            xlnx,addrwidth = <0x20>;
                            xlnx,flush-fsync = <0x1>;
                            xlnx,num-fstores = <0x1>;
                            dma-channel@43000000 {
                                    compatible = "xlnx,axi-vdma-mm2s-channel";
                                    interrupts = <0 32 4>;
                                    xlnx,datawidth = <0x20>;
                                    xlnx,device-id = <0x0>;
                                    xlnx,genlock-mode ;
                                    xlnx,include-dre ;
                            };
                            dma-channel@43000030 {
                                    compatible = "xlnx,axi-vdma-s2mm-channel";
                                    interrupts = <0 33 4>;
                                    xlnx,datawidth = <0x20>;
                                    xlnx,device-id = <0x0>;
                                    xlnx,genlock-mode ;
                                    xlnx,include-dre ;
                            };
                    };

     

    I do not find entries that correspond to the DMA, CDMA, or MCDMA entries at the above link.  For example, a DMA entry starting with 

    axi_dma_1: dma@40400000 {

     

    Am I misconfiguring the petalinux device tree?  I've tried compiling with a project-spec/meta-user/recipes-kernel/linux/linux-xlnx/bsp.cfg file containing

    # CONFIG_PL330_DMA is not set
    CONFIG_DMADEVICES=y
    CONFIG_XILINX_DMA=y
    CONFIG_XILINX_DMATEST=m
    CONFIG_XILINX_FRMBUF=y
     

    This does not produce a different outcome.

     

    Many thanks

    Matthew

     

     

     

  6. Hello:

    I am using PetaLinux and Vivado to compile PS/PL projects for a Zybo z7-20 board.   I would like to extend these projects to DMA between PS and PL.  To this end, I'm trying to create a device tree entry under PetaLinux for the xilinx dma-proxy kernel driver by following this example:

    https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1027702787/Linux+DMA+From+User+Space+2.0

    based on the software available here:

    https://github.com/Xilinx-Wiki-Projects/software-prototypes/tree/master/linux-user-space-dma

    I have succeeded in configuring PetaLinux to compile the kernel module dma-proxy.ko and to compile the user-space test program dma-proxy-test.  These are bundled via petalinux-package, transmitted to the board via SD card, and are available when the board boots into linux.

    My difficulty arises in the device tree.  As I understand from the online documentation at the first link above, modification of the device tree is required to utilize the driver.  Specifically, the section on the proxy device tree

    https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1027702787/Linux+DMA+From+User+Space+2.0?_ga=2.122547469.780816548.1679153960-1996714108.1676942251&_gac=1.16575362.1678039293.EAIaIQobChMIsL2du6_F_QIVYgetBh0UfAbkEAAYASAAEgL7BfD_BwE#Proxy-Device-Tree

     

    Following this series of steps:

    1) petalinux-create --type project --name zyboZ7 --source Zybo-Z7-20-Petalinux-2022-1.bsp

    2) petalinux-config -p PetaLinux/zyboZ7/

     3) under DTG-settings enter full path to an extra dts/dtsi file, save and exit

    4) create the dts/dtsi file based on guidance in the first link above.  The file I tried to use is called dma-proxy.dts and its entire contents appear below.  The file may be improperly formatted:  I have difficulty finding examples of Yocto dts/dtsi syntax online.

    dma_proxy {  
      compatible ="xlnx,dma_proxy";
      dmas = <&axi_dma_0 0  &axi_dma_0 1>;
      dma-names = "dma_proxy_tx", "dma_proxy_rx";  
      dma-coherent;
    } ;

    5) petalinux-build -c kernel --project PetaLinux/zyboZ7

    This command yields the error report below. 

     

    [INFO] Sourcing buildtools
    [INFO] Building kernel
    [INFO] Sourcing build environment
    [INFO] Generating workspace directory
    INFO: bitbake virtual/kernel
    NOTE: Started PRServer with DBfile: /mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/build/cache/prserv.sqlite3, Address: 127.0.0.1:34341, PID: 1250748
    Loading cache: 100% |                                                                                            | ETA:  --:--:--
    Loaded 0 entries from dependency cache.
    Parsing recipes: 100% |###########################################################################################| Time: 0:03:19
    Parsing of 3592 .bb files complete (0 cached, 3592 parsed). 5394 targets, 554 skipped, 0 masked, 0 errors.
    NOTE: Resolving any missing task queue dependencies
    NOTE: Fetching uninative binary shim file:///mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/components/yocto/downloads/uninative/126f4f7f6f21084ee140dac3eb4c536b963837826b7c38599db0b512c3377ba2/x86_64-nativesdk-libc-3.4.tar.xz;sha256sum=126f4f7f6f21084ee140dac3eb4c536b963837826b7c38599db0b512c3377ba2 (will check PREMIRRORS first)
    Initialising tasks: 100% |########################################################################################| Time: 0:00:06
    Checking sstate mirror object availability: 100% |################################################################| Time: 0:00:48
    Sstate summary: Wanted 1966 Local 0 Network 1684 Missed 282 Current 0 (85% match, 0% complete)
    NOTE: Executing Tasks
    ERROR: device-tree-xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0 do_compile: Error executing a python function in exec_func_python() autogenerated:
    
    The stack trace of python calls that resulted in this exception/failure was:
    File: 'exec_func_python() autogenerated', lineno: 2, function: <module>
         0001:
     *** 0002:devicetree_do_compile(d)
         0003:
    File: '/mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/components/yocto/layers/core/meta/classes/devicetree.bbclass', lineno: 131, function: devicetree_do_compile
         0127:            if not(os.path.isfile(dtspath)) or not(dts.endswith(".dts") or devicetree_source_is_overlay(dtspath)):
         0128:                continue # skip non-.dts files and non-overlay files
         0129:        except:
         0130:            continue # skip if can't determine if overlay
     *** 0131:        devicetree_compile(dtspath, includes, d)
         0132:}
         0133:
         0134:devicetree_do_install() {
         0135:    for DTB_FILE in `ls *.dtb *.dtbo`; do
    File: '/mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/components/yocto/layers/core/meta/classes/devicetree.bbclass', lineno: 119, function: devicetree_compile
         0115:        dtcargs += ["-i", i]
         0116:    dtcargs += ["-o", "{0}.{1}".format(dtname, "dtbo" if isoverlay else "dtb")]
         0117:    dtcargs += ["-I", "dts", "-O", "dtb", "{0}.pp".format(dts)]
         0118:    bb.note("Running {0}".format(" ".join(dtcargs)))
     *** 0119:    subprocess.run(dtcargs, check = True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
         0120:
         0121:python devicetree_do_compile() {
         0122:    includes = expand_includes("DT_INCLUDE", d)
         0123:    listpath = d.getVar("DT_FILES_PATH")
    File: '/mnt/2Tb/tools/Xilinx/PetaLinux/2022.1/components/yocto/buildtools/sysroots/x86_64-petalinux-linux/usr/lib/python3.9/subprocess.py', lineno: 528, function: run
         0524:            # We don't call process.wait() as .__exit__ does that for us.
         0525:            raise
         0526:        retcode = process.poll()
         0527:        if check and retcode:
     *** 0528:            raise CalledProcessError(retcode, process.args,
         0529:                                     output=stdout, stderr=stderr)
         0530:    return CompletedProcess(process.args, retcode, stdout, stderr)
         0531:
         0532:
    Exception: subprocess.CalledProcessError: Command '['dtc', '-@', '-p', '0x1000', '-@', '-i', '/mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/project-spec/configs/../../components/plnx_workspace/device-tree/device-tree', '-i', '/mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/git/device_tree/data/kernel_dtsi/2022.1/BOARD/', '-i', '/mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0', '-i', '/mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/build/tmp/work-shared/zynq-generic/kernel-source/scripts/dtc/include-prefixes', '-i', '/mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/build/tmp/work-shared/zynq-generic/kernel-source/arch/arm/boot/dts', '-o', 'dma-proxy.dtb', '-I', 'dts', '-O', 'dtb', 'dma-proxy.dts.pp']' returned non-zero exit status 1.
    
    Subprocess output:
    Error: /mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/project-spec/configs/../../components/plnx_workspace/device-tree/device-tree/dma-proxy.dts:3.1-10 syntax error
    FATAL ERROR: Unable to parse input tree
    
    ERROR: Logfile of failure stored in: /mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/temp/log.do_compile.1289115
    ERROR: Task (/mnt/2Tb/local/src/zyboZ7/build79/PetaLinux/zyboZ7/components/yocto/layers/meta-xilinx/meta-xilinx-core/recipes-bsp/device-tree/device-tree.bb:do_compile) failed with exit code '1'
    NOTE: Tasks Summary: Attempted 4873 tasks of which 4657 didn't need to be rerun and 1 failed.

     

    Can you pls advise?

     

    Many thanks
    Matthew

     


     

     

     

  7. Thank you for your note. 

    I was already preparing the SD card as described in the manual:

    image.png.e16a9ec04d408443650e3b37a3355a52.png

    In the test I originally posted, I had followed the procedure in your first response:

    On 3/5/2023 at 10:18 AM, mbritton said:

    After searching the web, I tried modifying project-spec/meta-user/recipes-bsp/u-boot/files/bsp.cfg to

    CONFIG_SYS_CONFIG_NAME="platform-top"
    CONFIG_BOOT_SCRIPT_OFFSET=0x9C0000
    CONFIG_SYS_BOOTM_LEN=0x10000000

    and project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h to

    #include <configs/zynq-common.h>
    #define CONFIG_SYS_BOOTM_LEN 0x10000000

     

  8. JColvin:

     

    Thank you for your note.  I think that I have modified the bsp.cfg file according to the link you sent.  I also modified platform-top.h based on another piece of documentation.  Not sure if this was necessary/advisable.

     

    I will await word from your Petalinux engineer and follow any advice they can offer.

     

    Many thanks

    Matthew

  9. Hello:

     

    I'm trying to enable boost, cairo, pango, libusb1 and usbutils under petalinux-config, recompile the petalinux kernel, and boot a zybo z7-20 board.  

     

    I find that the resulting image.ub file is of size 179792176 bytes.  This exceeds what I think is the default kernel size of 128MB.  For comparison, the pre-built image.ub file is of size 78889272.

     

    I am able to program the SD card with the root filesystem and the BOOT.BIN, boot.scr, and image.ub files from the pre-built image and boot the zybo board.

     

    When I attempt to repeat this procedure using the version built with the packages I've enabled, I receive a kernel panic warning, the tail of which is appended below.  I assume this arises from the image.ub exceeding 128MB, but I'm not sure.

     

    After searching the web, I tried modifying project-spec/meta-user/recipes-bsp/u-boot/files/bsp.cfg to

    CONFIG_SYS_CONFIG_NAME="platform-top"
    CONFIG_BOOT_SCRIPT_OFFSET=0x9C0000
    CONFIG_SYS_BOOTM_LEN=0x10000000

    and project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h to

    #include <configs/zynq-common.h>
    #define CONFIG_SYS_BOOTM_LEN 0x10000000

     

    This did not resolve the kernel panic. 

    Can you pls suggest how to increase kernel size beyond 128 MB?

    RAMDISK: Couldn't find valid RAM disk image starting at 0.
    VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
    Please append a correct "root=" boot option; here are the available partitions:
    0100           16384 ram0 
     (driver?)
    0101           16384 ram1 
     (driver?)
    0102           16384 ram2 
     (driver?)
    0103           16384 ram3 
     (driver?)
    0104           16384 ram4 
     (driver?)
    0105           16384 ram5 
     (driver?)
    0106           16384 ram6 
     (driver?)
    0107           16384 ram7 
     (driver?)
    0108           16384 ram8 
     (driver?)
    0109           16384 ram9 
     (driver?)
    010a           16384 ram10 
     (driver?)
    010b           16384 ram11 
     (driver?)
    010c           16384 ram12 
     (driver?)
    010d           16384 ram13 
     (driver?)
    010e           16384 ram14 
     (driver?)
    010f           16384 ram15 
     (driver?)
    1f00           16384 mtdblock0 
     (driver?)
    b300        61069312 mmcblk0 
     driver: mmcblk
      b301         1953792 mmcblk0p1 a9c90b46-01

      b302        59114496 mmcblk0p2 a9c90b46-02

    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
    CPU0: stopping
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.15.19-xilinx-v2022.1 #1
    Hardware name: Xilinx Zynq Platform
    [<c010d090>] (unwind_backtrace) from [<c0108ee4>] (show_stack+0x10/0x14)
    [<c0108ee4>] (show_stack) from [<c0727b90>] (dump_stack_lvl+0x40/0x4c)
    [<c0727b90>] (dump_stack_lvl) from [<c010b680>] (do_handle_IPI+0x80/0x140)
    [<c010b680>] (do_handle_IPI) from [<c010b754>] (ipi_handler+0x14/0x20)
    [<c010b754>] (ipi_handler) from [<c015cdb4>] (handle_percpu_devid_irq+0x4c/0xe8)
    [<c015cdb4>] (handle_percpu_devid_irq) from [<c0157d44>] (handle_irq_desc+0x24/0x34)
    [<c0157d44>] (handle_irq_desc) from [<c01583c8>] (handle_domain_irq+0x40/0x54)
    [<c01583c8>] (handle_domain_irq) from [<c0360a68>] (gic_handle_irq+0x68/0x78)
    [<c0360a68>] (gic_handle_irq) from [<c0100afc>] (__irq_svc+0x5c/0x90)
    Exception stack(0xc0c01ed8 to 0xc0c01f20)
    1ec0:                                                       00000000 00000003
    1ee0: 2458b000 e50cc540 e50cb878 6250c668 00000003 00000000 00000000 c1268da0
    1f00: 621dfcfe 00000000 00000015 c0c01f28 c058c09c c058c0c0 60000013 ffffffff
    [<c0100afc>] (__irq_svc) from [<c058c0c0>] (cpuidle_enter_state+0x110/0x27c)
    [<c058c0c0>] (cpuidle_enter_state) from [<c058c268>] (cpuidle_enter+0x28/0x38)
    [<c058c268>] (cpuidle_enter) from [<c014071c>] (do_idle+0x23c/0x264)
    [<c014071c>] (do_idle) from [<c01408b4>] (cpu_startup_entry+0x18/0x1c)
    [<c01408b4>] (cpu_startup_entry) from [<c0b00e20>] (start_kernel+0x504/0x5d4)
    [<c0b00e20>] (start_kernel) from [<00000000>] (0x0)
    ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---

     

     

×
×
  • Create New...