[Pulpissimo]where are the <board_target>.sh ?
#1
Question 
Hello, in the  Pulpissimo's README.md,it says 
Quote:Supported Boards
At the moment the followin g boards are supported:

  Digilent Genesys2
  Xilinx ZCU104
  Xilinx ZCU102
  Digilent Nexys Video
  ZedBoard

  
  In the  section  Compiling Applications for the FPGA Target, it  says  

Quote:To run or debug applications for the FPGA you need to use a recent version of the PULP-SDK (commit id 3256fe7 or newer.'). Configure the SDK for the FPGA platform by running the following commands within the SDK's root directory:

  source configs/pulpissimo.sh
  source configs/fpgas/pulpissimo/<board_target>.sh
 
 Question:   When I git clone the pulp-sdk.git and changed directory to  pulp-sdk/configs/fpgas/pulpissimo/, I  only found the genesys2.sh. Now I am using Digilent Nexys Video Board, but there is no nexys_video.sh . What should I do?
Reply
#2
The sources are actually under the pulpissimo tree. I think by default they are not automatically downloaded
https://github.com/pulp-platform/pulpiss...exys_video
Visit pulp-platform.org and follow us on twitter @pulp_platform
Reply
#3
(12-13-2019, 12:01 PM)kgf Wrote: The sources are actually under the pulpissimo tree. I think by default they are not automatically downloaded
https://github.com/pulp-platform/pulpiss...exys_video
 
Thank you! I think you may misunderstood me.
Actually,the pulpissimo-nexys_video directory  will  be  downloaded  automatically  when I  git  clone  the pulpissimo repository . But  the following two commands  
      
Code:
source configs/pulpissimo.sh
 source configs/fpgas/pulpissimo/<board_target>.sh

 should be executed under the pulp-sdk repository(https://github.com/pulp-platform/pulp-sdk) .In the directory   pulp-sdk/configs/fpgas/pulpissimo ,I only found genesys2.sh. But I did not find the  .sh  files  for Xilinx ZCU104 、Xilinx ZCU102 、Digilent Nexys Video and ZedBoard.
Reply
#4
Looks like pulp-sdk is out of sync with the actual hardware support. I'll contact our sdk maintainer about this. I don't think the scripts will differe by much.
Reply
#5
(12-16-2019, 02:30 AM)bluewww Wrote: Looks like pulp-sdk is out of sync with the actual hardware support. I'll contact our sdk maintainer about this. I don't think the scripts will differe by much.

   Thank you for your reply! In addition,I have another question. I have built the SDK  based on the Standard SDK build section in the pulp-sdk repository's  README.  In  the runtime directory ,it seems only gap*vega and wolfe chips are supported now .In rt_gap*.h、rt_vega.h and rt_wolfe.h  (red color words in the following directory tree),some enumeration types which are needed in C code have  been defined . But  these  enumerations are unimplemented (just declaration) in the rt_default.h . 
Question:  Now I am using a Digilent Nexys Video Board , I want to know  whether I should  implement these  enumeration types in rt_defaut.h.


Code:
pulp-sdk/runtime/pulp-rt/include/rt]$tree


.

├── chips

│   ├── gap

│   │   └── config.h

│   ├── gap9

│   │   └── config.h

│   ├── gap_rev1

│   │   └── config.h

│   ├── rt_default.h

│   ├── rt_gap9.h

│   ├── rt_gap.h

│   ├── rt_pulp.h

│   ├── rt_pulpissimo.h

│   ├── rt_vega.h

│   ├── rt_wolfe.h

│   └── vega

│       └── config.h

├── data

│   ├── rt_data_bridge.h

│   ├── rt_data_camera.h

│   ├── rt_data_i2c.h

│   └── rt_data_spim.h

├── implem

│   ├── cluster.h

│   ├── gap9.h

│   ├── hyperram.h

│   ├── implem.h

│   ├── udma.h

│   ├── utils.h

│   └── vega.h

├── rt_alloc.h

├── rt_api_decl.h

├── rt_api.h

├── rt_bridge.h

├── rt_camera.h

├── rt_cluster.h

├── rt_compat.h

├── rt_config.h

├── rt_data.h

├── rt_debug.h

├── rt_dev.h

├── rt_dma.h

├── rt_eeprom.h

├── rt_error.h

├── rt_event.h

├── rt_extern_alloc.h

├── rt_flash.h

├── rt_freq.h

├── rt_fs.h

├── rt_gpio.h

├── rt_himax.h

├── rt_hyper.h

├── rt_i2c.h

├── rt_i2s.h

├── rt_irq.h

├── rt_omp.h

├── rt_ov7670.h

├── rt_pad.h

├── rt_pe.h

├── rt_perf.h

├── rt_periph.h

├── rt_pm.h

├── rt_pwm.h

├── rt_rtc.h

├── rt_spim.h

├── rt_sync_mc.h

├── rt_task.h

├── rt_thread.h

├── rt_time.h

├── rt_timer.h

├── rt_uart.h

├── rt_utils.h
└── rt_voltage.h
                                                                                                                                                                      Thanks !

Reply
#6
Hi,
Pulpissimo is supported. There is no specific file for pulpissimo in pulp-rt because it's not a chip so we don't have any specific information in terms of padframe and so on
For the fpga, we are indeed only supporting genesys2 in the script which is in charge of running a test, but you can still launch the test with classic openocd commands as usual. The runtime does not need to know the fpga, it's compiled the same way whatever the fpga.
Reply
#7
(12-16-2019, 02:05 PM)germain_haugou Wrote: Hi,
Pulpissimo is supported. There is no specific file for pulpissimo in pulp-rt because it's not a chip so we don't have any specific information in terms of padframe and so on
For the fpga, we are indeed only supporting genesys2 in the script which is in charge of running a test, but you can still launch the test with classic openocd commands as usual. The runtime does not need to know the fpga, it's compiled the same way whatever the fpga.

If  so,can I use the function rt_set_pad_function in my C  code ? I  just want to  run a  gpio_in controlling  gpio_out  C code  in  my FPGA  development board  which  has been configured  by a bitstream file. But the reference manual ( PULP kernel library :  pulp-sdk/doc/dox/doc/runtime/html/index.html) describes the rt_set_pad_function as follows:

     
  the  enumeration type parameter  rt_pad_e  and  rt_pad_func_e   only be defined in rt_vega.h 、rt_gap*.h and rt_wolfe.h  .

 Here is my  gpio_in controlling  gpio_out   C  code   :  (a slide_switch drives a LED's ON or OFF ) 
  I referred to this Thread  how to manipulating of GPIOs on Pulpissino platform

Code:
#include <stdio.h>
#include <rt/rt_api.h>
#include <stdint.h>

#define GPIO11 11      // cam_data0   GPIO 11  LED
#define GPIO13 13      // cam_data2   GPIO 13   Slide Switch
int __rt_fpga_fc_frequency = 10000000;// e.g. 20000000 for 20MHz;
int __rt_fpga_periph_frequency = 5000000;// e.g. 10000000 for 10MHz;
int main()
{  
// GPIO initialization
 rt_gpio_init(0,GPIO11);
 rt_gpio_init(0,GPIO13);

// Set pad function as gpio
 rt_pad_set_function(GPIO11,1);  // IS THIS RIGHT?
 rt_pad_set_function(GPIO13,1);  // IS THIS RIGHT?

// Configure GPIO as  input or output
 rt_gpio_set_dir(0,1<<GPIO13,RT_GPIO_IS_IN);
 rt_gpio_set_dir(0,1<<GPIO11,RT_GPIO_IS_OUT);
while (1)
 {
 
   if (rt_gpio_get_pin_value(0,GPIO13)==1)
   {
    rt_gpio_set_pin_value(0,GPIO11,0);
   }
   else
   {
    rt_gpio_set_pin_value(0,GPIO11,1);
   }
   rt_time_wait_us(50000000);
 }

 return 0;
}

But it doesn't work , the LED  seems  to be out of  the  switch's control.
Reply
#8
(12-16-2019, 02:30 AM)bluewww Wrote: Looks like pulp-sdk is out of sync with the actual hardware support. I'll contact our sdk maintainer about this. I don't think the scripts will differe by much.

Any update on this?
I am also trying to run some applications on the Zedboard (I am guessing the pulp-rt-examples can be used?).
There is no board target for the Zedboard when executing: 
Quote:source configs/fpgas/pulpissimo/<board_target>.sh

Should we take the genesys2.sh as it is the only one in fpgas/pulpissimo or are there any pending updates on the board targets?

Edit: I just saw that the simple runtime seems to feature all the board targets while the pulp-sdk does not.
Should it be enough to copy the corresponding board_target.sh file from the simple runtime to the SDK?
At least the sizes of the genesys2.sh files are different which worries me.
Would it even be possible to use the simple runtime when working with FPGAs?
It seems to me that it would not be possible because the command: 
Quote:source sourceme.sh && ./pulp-tools/bin/plpbuild checkout build --p openocd --stdout

would fail when using the simple runtime instead of the SDK.

Edit: It seems like using the genesys2.sh is fine for other boards as long as we override the frequencies and baudrate if neccessary.
Reply
#9
(08-20-2020, 03:52 PM)LPLA Wrote:
(12-16-2019, 02:30 AM)bluewww Wrote: Looks like pulp-sdk is out of sync with the actual hardware support. I'll contact our sdk maintainer about this. I don't think the scripts will differe by much.

Any update on this?
I am also trying to run some applications on the Zedboard (I am guessing the pulp-rt-examples can be used?).
There is no board target for the Zedboard when executing: 
Quote:source configs/fpgas/pulpissimo/<board_target>.sh

Should we take the genesys2.sh as it is the only one in fpgas/pulpissimo or are there any pending updates on the board targets?

Edit: I just saw that the simple runtime seems to feature all the board targets while the pulp-sdk does not.
Should it be enough to copy the corresponding board_target.sh file from the simple runtime to the SDK?
At least the sizes of the genesys2.sh files are different which worries me.
Would it even be possible to use the simple runtime when working with FPGAs?
It seems to me that it would not be possible because the command: 
Quote:source sourceme.sh && ./pulp-tools/bin/plpbuild checkout build --p openocd --stdout

would fail when using the simple runtime instead of the SDK.

Edit: It seems like using the genesys2.sh is fine for other boards as long as we override the frequencies and baudrate if neccessary.

Hi LPLA, 
Sorry for the late reply. It is as you already discovered, you can just source the genesys2.sh file and override the frequencies. So far, there is no board specific configuration except for the frequency and baud rate that would affect generated binary. I updated the README file on the PULPissimo Github page with a hint to this.
Reply


Forum Jump: