PBI on flex-builder

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

PBI on flex-builder

Jump to solution
1,309 Views
notshure
Contributor IV

Hello everyone,

I work with the QorlQ LS1043ARDBRM Board.

I would like to generate the firmware_ls1043ardb_sdboot.img file with RCW modified by me via the flex-builder using the command flex-builder -i mkfw -m ls1043ardb -b sd.

My goal is to disable cores, in particular core1, core2 and core3.

As a result I would like to see u-boot's screenshot telling me that core1, core2 and core3 are disabled.

It was suggested to me to perform the follow  PBI command:

write 0x01ee0094, 0x0000000e

In particular I found that PBI commands are entered in the following way:

.pbi
write 0x01ee0094, 0x0000000e
.end

I had also seen that it is possible to put the cores in hold of mode by setting bit 201 of the RCW to zero.

The RCW file is located in the following path:

flexbuilder_lsdk2108 \ components \ firmware \ rcw \ ls1043ardb \ RR_FQPP_1455 \ \ rcw_1600_sdboot.rcw

I work with rcw_1600_sdboot.rcw because my board works at that 1600MHz frequency.

The content of the rcw_1600_sdboot.rcw file is the following:

#include <../ls1043aqds/ls1043a.rcwi>

SYS_PLL_RAT=4
MEM_PLL_RAT=16
CGA_PLL1_RAT=16
CGA_PLL2_RAT=10
SRDS_PRTCL_S1=5205
FM1_MAC_RAT=1
SRDS_PLL_REF_CLK_SEL_S1=2
SRDS_DIV_PEX=1
DDR_FDBK_MULT=2
DDR_REFCLK_SEL=1
PBI_src=6
IFC_MODE=64
HWA_CGA_M1_CLK_SEL=6
DRAM_LAT=1
SYS_PLL_SPD=1
UART_BASE=7
IRQ_OUT=1
TVDD_VSEL=0
DVDD_VSEL=2
EVDD_VSEL=2
IIC2_EXT=0
SYSCLK_FREQ=600
HWA_CGA_M2_CLK_SEL=1

#include <../ls1043aqds/atf_address.rcw>
#include <../ls1043aqds/cci_barrier_disable.rcw>
#include <../ls1043aqds/a009929.rcw>
#include <../ls1043aqds/usb_phy_freq.rcw>

Where the PBI command must be entered?

I tried to insert it at the beginning and at the end of the .rcw file, but then the system could not boot.

In general, without entering the command, the system boots normally and I can see the u-boot screen.

Also how do you modify RCW in this file?

How can I understand how to individually modify the 512bit of the RCW?

As RCW septum with the value 4555h in the calmpo of bits 128-143 to set the Serdes module with
1xQSGM and 3xPCIe?

0 Kudos
Reply
1 Solution
1,279 Views
notshure
Contributor IV

The procedure I performed after I changed the file rcw_1600_sdboot.rcw, with the addition of the  PBI command was:

  • Save the file rcw_1600_sdboot.rcw with the new changes.

  • Delete the old compiled RCW file rcw_1600_sdboot.bin from the folder located in :

/home/flex/Downloads/flexbuild_lsdk2108/components/firmware/rcw/ls1043ardb/RR_FQPP_1455

  • Go to the folder:

/home/flex/Downloads/flexbuild_lsdk2108/components/firmware/rcw

And run the linux $ make command, to compile all the RCWs

  • Delete any folders present in the following path:

/home/flex/Downloads/flexbuild_lsdk2108/build/firmware/rcw

  • Delete any folders present in the following path:

/home/flex/Downloads/flexbuild_lsdk2108/build/firmware/atf

  • Delete any files or folders present in the following path:

/home/flex/Downloads/flexbuild_lsdk2108/build/images

  • Once the old executable files are deleted, I run the following command:

flex-builder -i mkfw -m ls1043ardb-b sd

  • The output of the command generates me the following files:

firmware_ls1043ardb_sdboot.img

firmware_ls1043ardb_sdboot_secure.img

linux_LS_arm64_signature.itb

lsdk2108_yocto_tiny_LS_arm64.itb

rootfs_lsdk2108_yocto_tiny_arm64.cpio.gz

  • I write the file firmware_ls1043ardb_sdboot.img to the SD card using the following linux command:

sudo dd if=firmware_ls1043ardb_sdboot.img of=/dev/sdb1 bs=512 seek=8

I use a USB adapter to insert SD card into my PC.

I am running Ubuntu 20.04 through a virtual machine.

The writing seems to have been successful.

But when I try to boot from SD (set de DIP switches for SD boot), I don't see anything on the console.

I don't see Uboot starting.

there is something wrong with this procedure ?

View solution in original post

0 Kudos
Reply
6 Replies
1,304 Views
ufedor
NXP Employee
NXP Employee

> Where the PBI command must be entered?

After the RCW, just before or after "#include" lines.

Please provide modified "rcw" file for inspection.

 

Please provide SD card binary images (bootable and with modified RCW) for inspection.

(In case of big size of the images please load them to any cloud storage).

0 Kudos
Reply
1,291 Views
notshure
Contributor IV

Thanks for the reply.
I modified the rcw_1600_sdboot.rcw file as follows:

#include <../ls1043aqds/ls1043a.rcwi>

.pbi
write 0x01ee0094, 0x0000000e
.end

SYS_PLL_RAT=4
MEM_PLL_RAT=16
CGA_PLL1_RAT=16
CGA_PLL2_RAT=10
SRDS_PRTCL_S1=5205
FM1_MAC_RAT=1
SRDS_PLL_REF_CLK_SEL_S1=2
SRDS_DIV_PEX=1
DDR_FDBK_MULT=2
DDR_REFCLK_SEL=1
PBI_src=6
IFC_MODE=64
HWA_CGA_M1_CLK_SEL=6
DRAM_LAT=1
SYS_PLL_SPD=1
UART_BASE=7
IRQ_OUT=1
TVDD_VSEL=0
DVDD_VSEL=2
EVDD_VSEL=2
IIC2_EXT=0
SYSCLK_FREQ=600
HWA_CGA_M2_CLK_SEL=1

#include <../ls1043aqds/atf_address.rcw>
#include <../ls1043aqds/cci_barrier_disable.rcw>
#include <../ls1043aqds/a009929.rcw>

Adding the command right after the first include.

Under you can find the link to the drive in which to find the rcw_1600_sdboot_sben.bin  and firmware_ls1043ardb_sdboot.img that I am going to write on the SD card

RCW.bin and Firmware.img 

Thank you and good day.

0 Kudos
Reply
1,273 Views
ufedor
NXP Employee
NXP Employee

> Adding the command right after the first include.

This is not correct.

"After the RCW, just before or after "#include" lines." means near the following lines:

#include <../ls1043aqds/atf_address.rcw>
#include <../ls1043aqds/cci_barrier_disable.rcw>
#include <../ls1043aqds/a009929.rcw>

0 Kudos
Reply
1,267 Views
notshure
Contributor IV

Yes I also tried to put after or before that include, but it doesn't work anyway

* SRDS_PLL_REF_CLK_SEL_S1 :
* SerDes 1, PLL1 : 1 - 156.25MHz for XFI
* SerDes 1, PLL2 : 0 - 100MHz for QSGMII and PCIe
* SRDS_DIV_PEX : 00 Can train up to a max rate of 5G
*
* DDR clock:
* DDR_REFCLK_SEL : 1 - DDRCLK pin provides the reference clock to the DDR PLL
*
*/

I tried to put it here

#include <../ls1043aqds/ls1043a.rcwi>

I tried to put it here

SYS_PLL_RAT=4
MEM_PLL_RAT=16
CGA_PLL1_RAT=16
CGA_PLL2_RAT=10
SRDS_PRTCL_S1=5205
FM1_MAC_RAT=1
SRDS_PLL_REF_CLK_SEL_S1=2
SRDS_DIV_PEX=1
DDR_FDBK_MULT=2
DDR_REFCLK_SEL=1
PBI_src=6
IFC_MODE=64
HWA_CGA_M1_CLK_SEL=6
DRAM_LAT=1
SYS_PLL_SPD=1
UART_BASE=7
IRQ_OUT=1
TVDD_VSEL=0
DVDD_VSEL=2
EVDD_VSEL=2
IIC2_EXT=0
SYSCLK_FREQ=600
HWA_CGA_M2_CLK_SEL=1

I tried to put it here


#include <../ls1043aqds/atf_address.rcw>
#include <../ls1043aqds/cci_barrier_disable.rcw>
#include <../ls1043aqds/a009929.rcw>
#include <../ls1043aqds/usb_phy_freq.rcw>

I tried to put it here

I tried to compile the RCW file by putting the command in different places, but in generating it never worked anyway.
Where can the error be ?
In any case it is possible to have the .img file of the ls1043a with the cores disabled ?

0 Kudos
Reply
1,284 Views
ufedor
NXP Employee
NXP Employee

There is no binary corresponding to the "write 0x01ee0094, 0x0000000e" in the "firmware_ls1043ardb_sdboot.img".

Please refer to the LSDK User Guide, How to generate LSDK composite firmware:

https://docs.nxp.com/bundle/GUID-3FFCCD77-5220-414D-8664-09E6FB1B02C6/page/GUID-EB58F77F-97D9-459A-A...

0 Kudos
Reply
1,280 Views
notshure
Contributor IV

The procedure I performed after I changed the file rcw_1600_sdboot.rcw, with the addition of the  PBI command was:

  • Save the file rcw_1600_sdboot.rcw with the new changes.

  • Delete the old compiled RCW file rcw_1600_sdboot.bin from the folder located in :

/home/flex/Downloads/flexbuild_lsdk2108/components/firmware/rcw/ls1043ardb/RR_FQPP_1455

  • Go to the folder:

/home/flex/Downloads/flexbuild_lsdk2108/components/firmware/rcw

And run the linux $ make command, to compile all the RCWs

  • Delete any folders present in the following path:

/home/flex/Downloads/flexbuild_lsdk2108/build/firmware/rcw

  • Delete any folders present in the following path:

/home/flex/Downloads/flexbuild_lsdk2108/build/firmware/atf

  • Delete any files or folders present in the following path:

/home/flex/Downloads/flexbuild_lsdk2108/build/images

  • Once the old executable files are deleted, I run the following command:

flex-builder -i mkfw -m ls1043ardb-b sd

  • The output of the command generates me the following files:

firmware_ls1043ardb_sdboot.img

firmware_ls1043ardb_sdboot_secure.img

linux_LS_arm64_signature.itb

lsdk2108_yocto_tiny_LS_arm64.itb

rootfs_lsdk2108_yocto_tiny_arm64.cpio.gz

  • I write the file firmware_ls1043ardb_sdboot.img to the SD card using the following linux command:

sudo dd if=firmware_ls1043ardb_sdboot.img of=/dev/sdb1 bs=512 seek=8

I use a USB adapter to insert SD card into my PC.

I am running Ubuntu 20.04 through a virtual machine.

The writing seems to have been successful.

But when I try to boot from SD (set de DIP switches for SD boot), I don't see anything on the console.

I don't see Uboot starting.

there is something wrong with this procedure ?

0 Kudos
Reply