Menu

port Pharos to RK3308(quad cortex-a35 GICv2)

zxw
2019-10-26
2019-10-30
  • zxw

    zxw - 2019-10-26

    I found Pharos supports cortex-a53 and it also supports RMP(SMP) mode, but I want it to run on RK3308(quad cortex-a35 GICv2). I would like to ask if Praros can be ported to cortex-a35 (RK3308 Rockchip quad cortex-a35) If it can run on cortex-a35, its migration process is difficult.?
    Thanks

     
  • Pharos Team

    Pharos Team - 2019-10-27

    Hi,

    Thank you for considering Pharos. The port for the A-35 should be quite simple since is has the same family (ARMv8-A) has the A-53 and therefore most of the code is already done. I've haven't looked into the details of the RK3308 but the port probably needs the new code for starting the CPU/Board (including SDRAM, PLL, etc) and handling the GICv2 (the A-53 had a newer GICv3). After this code is done the port should be straightfoward.

    If you have further questions just keep in touch

    Pharos Team

     
    • zxw

      zxw - 2019-10-28

      Hi
      Thanks for you reply
      I think the files included in the path below need to be modified.But I don't know which parts of the file need to be modified.
      ~Pharos/Hal/Arm/archtecture/v8
      ~Pharos/Hal/Arm/board/raspberry/raspberry3
      ~Pharos/Hal/Arm/processor/A53/BCM2837
      I tried to find the part related to GIC, but I have no idea at all.I found a gic.c(~Pharos/Hal/Arm/manufacturer/arm/Gic/src) file, but this file was not used when I compiled the project.Is there any guidance on the migration of Pharos to other platforms?Or can you give me some other advice?
      Attachment is the rk3308 datasheet
      Thanks again

       
  • Pharos Team

    Pharos Team - 2019-10-29

    Hi again,

    You are quite right about the GIC. We started implementing it (when doing the raspberry) and only half-way we realized that the raspberry 3 actually doesn't use it (it has a custom interrupt controller) so we didn't finish it (have no way to test it) and we ended up not removing it, hence the confusion.

    My suggestion when updating to a new CPU is NOT to modify the existing code (unless a bug exists or some common code can be added) but to create NEW components.

    For example, I would start by using Netbeans 8.2. Using this your life will get much easier.

    Then I would create a new component (Netbeans project) in the Hal/Arm/processor/Cortex-A/A35/RK3308. This should have all the code that is applicable only to this CPU.
    I would also create another component Hal/Arm/manufacturer/Arm/GicV2 with the code for the GICv2.
    I guess you have a specific board in mind (not jut the CPU). I would create another project in the Hal/Arm/board/???? folder with the code specific to that board (e.g. initialize the SDRAM, etc).

    To create a new Netbeans project, I recommend to copy-paste an existing project (e.g. Armv8-A in Hal/Arm/architecture/v8) and then deleting the source/headaer files and creating your own. This way all of the compilation flags/etc are initialized.

    On your application, you will have to include these libraries in the linker, of course (check the examples to see how, or just ask us).

    Any doubt just ask ;)

    On a side note, we would be happy to integrate your code in the official Pharos source code. We do have some requirements for the source code. The main one is that it must be tested on our environment. So for that we need a board/simulator. Can you tell us what is the board you are considering?

    Thanks,
    Pharos Team

     
  • zxw

    zxw - 2019-10-30

    Hi
    Sorry for the late reply
    I will try to port pharos to rk3308 according to your suggestion.
    Yes,I want to evaluate pharos using ROC-RK3308-CC Quad-Core 64-Bit AIOT MainBoard
    The following link has information about the MainBoard.
    http://shop.t-firefly.com/goods.php?id=86

    Thanks
    zxw

     
  • Pharos Team

    Pharos Team - 2019-10-30

    Hi
    No problem (not late at all).
    Good to know :)
    It is a nice board!

    Just a question, if I may: I noticed that you can burn the firmware through a USB-C cable. Is it possible to flash (and debug) the board via the USB-C cable?
    I ask this because if you have to program the board via the SD-card you are going to loose a lot of time doing this (or maybe you know some way that is better).

    Thanks,
    Pharos team

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.