cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
325 Views
Registered: ‎01-11-2019

bitstream verify fail after linux kernel booting

I'm learning to develop linux driver, using zynq-7010.  I try to develop a simple gpio driver for PL axi-gpio. Now I meet a problem:

software:

vivado : 2016.4

uboot source code : xilinx 2018.3

linux source code : xilinx 2018.3

hardware:

zynq-7010

PL axi-gpio connect to 4 LEDs

process (brief):

  1. block design: add an axi-gpio(address 0x41200000) to block design, make 4 IO externel, then genenrate bitstream & .msk file.
  2. generate Boot.bin: fsbl + bitstream + uBoot.elf
  3. flash QSPI with Boot.bin, then boot successfully, I can write registers of axi-gpio by "mw 0x41200000" cmd to control LEDs.
  4. vivado->hardware manager->verify device success
  5. modify dts, add:
  6. amba_pl {
    #address-cells = <0x1>;
    #size-cells = <0x1>;
    compatible = "simple-bus";
    ranges;

    gpio@41200000 {
    #gpio-cells = <0x3>;
    clock-names = "s_axi_aclk";
    compatible = "yhs,pl-gpio";
    gpio-controller;
    reg = <0x41200000 0x10000>;
    };
    };

  7. use tftp to download uImage + devicetree.dtb + rootfs, then boot linux kernel successfully. 
  8. my pl-gpio-driver.ko doesn't work normally and kernel break down. So I boot linux kernel again, use "devmem 0x41200000" to read axi-gpio's registers, kernel break down.
  9. vivado->hardware manager->verify device, there're some differences between readback data and programmed bitstream.

It seems that linux kernel affects bitstream.

Does anyone meet this problem?

Thanks!!!

0 Kudos
0 Replies