Hi Syam, for me that error looks like an issue with the initialization of the processing system, i.e. the ps7_init code. Have you just used the zedboard design as it is, or have you modified the generated edk project to fit the zybo board? Maybe you should try to adapt it and generate a new ps7_init by exporting the design to SDK (you will then get the ps7_init in the generated folder). To test if this is really the problem and if you have solved it, you could try to access the ram manually by executing the following commands in xmd after turning the board on (with setting the jumpers to jtag boot): - connect arm hw - rst - source ps7_init.tcl - ps7_init - ps7_post_config - mrd <someaddr> 1 - dow -data <datafile> <someaddr> Yours, Christoph Von: Syam Sanal
Gesendet: Dienstag, 27. September 2016 17:45
An: ReconOS
Betreff: Re: [reconos] ReconOs on Zybo
Syam Sanal <syam....@gmail.com> hat am 27. September 2016 um 17:45 geschrieben:
To unsubscribe from this group and stop receiving emails from it, send an email to reconos+u...@googlegroups.com.
Hi Syam,
great that you got your board working. I also setup the zedboard with the newest linux kernel and also encountered the problem of not working hardware threads, i.e. the sort demo starts but newer gets an acknowledge back from the hardware thread. The problem here is, that the interrupt numbers changed in the newest kernel releases and, therefore, the hardcoded interrupts are no longer working. I’m currently working on updating some components and also want to fix that interrupt issue by integrating the ReconOS components correctly via the device tree. As a quick fix to this problem you can try to manually update the interrupt numbers in the driver (hopefully that works and we do not need further initialization performed when integrated into the device tree). For the zedboard my fixed driver uses interrupts 164 (was 90 before, https://github.com/ReconOS/reconos/blob/develop/linux/driver/osif_intc.c#L53) and 165 (was 91 before), https://github.com/ReconOS/reconos/blob/develop/linux/driver/proc_control.c#L54). Maybe you can try this out. If it does not work we can think of integrating my changes partially so that at least the interrupts are working again.
Regarding your second problem I cannot give you any hints without further information. There might be many reasons why a kernel module cannot be inserted.
Yours,
Christoph
--
Hi Syam,
it is a little bit hard to tell you what exactly went wrong in your case. For some reason there is a null pointer exception during clenaup of the module. However there should be no cleabup when you try to load the module. I believe you are loading the module using the reconos_init script, which first tries to remove any existing module.
Does the exception also occur when insmod the kernel module on a newly booted system. In that case during initialization something goes wrong and the kernel module tries to celanup all already requested resources. However , it should not cause a null pointer exception.
Did you do any further changes except the interrupt numbers? I checked what happens when the interrupt allocation fails but I don’t think that this error arises from there.
To get a little bit more output to tell you what exactly is going weong you might want to turn on some debugging output by defining the __printk macro in https://github.com/ReconOS/reconos/blob/develop/linux/driver/reconos.h
amba: amba {
reconos_osif: reconos_osif@75a00000 {
compatible = "upb,reconos-osif-3.0";
reg = <0x75a00000 0x10000>;
};
reconos_osif_intc: reconos_osif_intc@7b400000 {
compatible = "upb,reconos-osif-intc-3.0";
reg = <0x7b400000 0x10000>;
interrup-parent = <&intc>;
interrupts = <0 58 4>;
};
reconos_proc_control: reconos_proc_control@6fe00000 {
compatible = "upb,reconos-control-3.0";
reg = <0x6fe00000 0x10000>;
interrupt-parent = <&intc>;
interrupts = <0 59 4>;
};
};