Microchip® PolarFire SoC ICICLE Kit Board - microchip_pfsoc VxWorks® 7 Board Support Package (BSP)

Supported Boards

The microchip_pfsoc board support package (BSP) can be used to boot VxWorks 7 on the PolarFire SoC ICICLE Kit board.

Supported Devices

Hardware Interface VxBus Driver Name VxWorks Driver Component VxBus Driver Module Source File
RISC-V TIMER - DRV_TIMER_RISCV_MCH vxbRiscvMchTimer.c
RISC-V PLIC - DRV_INTCTLR_PLIC vxbRiscvPlic.c
CLOCK:0 - DRV_CLK_FIXED_RATE vxbClkFixedRate.c
CLOCK:1 - DRV_CLK_MICROCHIP_PFSOC vxbMicrochipPFSoCClk.c
UART:0 - DRV_SIO_FDT_NS16550 vxbFdtNs16550Sio.c
UART:1 - DRV_SIO_FDT_NS16550 vxbFdtNs16550Sio.c
UART:2 - DRV_SIO_FDT_NS16550 vxbFdtNs16550Sio.c
UART:3 - DRV_SIO_FDT_NS16550 vxbFdtNs16550Sio.c
DMA - DRV_PDMA_FDT_SIFIVE vxbSifivePdma.c
1GB-ETHERNET - DRV_END_FDT_XLNX_ZYNQ vxbFdtZynqGemEnd.c
ETHERNET PHY - INCLUDE_VSC8XXX_PHY vxbVsc8xxxPhy.c

For more information about how to configure these VxBus drivers beyond their defaults, refer to the microchip_pfsoc BSP Supplement Guide on the Wind River Support Network.

Software Prerequisites

Before you begin, you must do the following:

Hardware Prerequisites

Target Boot Procedure

This procedure is the most direct strategy for booting the target board successfully to the VxWorks kernel shell prompt. It can only be done from a Linux workstations.

Step 1: Set up the Target

1.1 Attach the serial cable between the target board J11 micro-USB connector and the workstation, and attach a physical network cable to the target board J2.

1.2 Start a serial terminal emulator program on your workstation.

There are 4 UARTs with the USB-to-Serial port, select the FIRST UART and set the serial communication configuration as follows:

Baud Rate: 115200
Data: 8 bit
Parity: None
Stop: 1 bit
Flow Control: None

1.3 Set the hardware switches as follows:

Jumper Number Configuration
J31 OFF
J9 OFF
J21 OFF
J46 OFF
J47 OFF
J15 OFF
J17 OFF
J43 Pins 1-2
J28 ON
J24 ON
J34 Pins 1-2
J35 Pins 1-2
J45 Pins 1-2

Step 2: Boot the Target Board

2.1 Power on the target board and observe the U-Boot shell on the target serial console after about 6 seconds of no serial input.

U-Boot 2020.01 (Jun 23 2020 - 09:17:54 +0000)

DRAM:  1 GiB
MMC:   sdhc@20008000: 0
In:    serial@20000000
Out:   serial@20000000
Err:   serial@20000000
Net:
Warning: ethernet@20112000 using MAC address from ROM
eth0: ethernet@20112000
Hit any key to stop autoboot:  0
RISC-V #

NOTE 1: Wind River recommends you use the default U-Boot image programmed into board eMMC.

Step 3: Create the VxWorks Source Build Project

3.1 Open a Linux workstation command terminal and configure the environment variables for VxWorks 7 command-line interface (CLI) development. Refer to the microchip_pfsoc BSP Supplement Guide for details.

3.2 From the workstation command terminal, enter the following:

~/WindRiver/workspace$ vxprj vsb create -lp64 -smp -bsp microchip_pfsoc -S myVSB
~/WindRiver/workspace$ cd myVSB
~/WindRiver/workspace/myVSB$ make -j 8
~/WindRiver/workspace/myVSB$ cd ..

Step 4: Create the VxWorks Image Project

4.1 From the workstation command terminal, enter the following:

~/WindRiver/workspace$ vxprj vip create -vsb myVSB myVIP
~/WindRiver/workspace$ cd myVIP

Step 5: Configure VxWorks Image Project with the Target Board MAC Address

5.1 Open the following file in an editor:

~/WindRiver/workspace/myVIP/microchip_pfsoc_w_x_y_z/icicle-kit-es-a000-microchip.dts

NOTE 1: w,x,y,z represent the microchip_pfsoc BSP layer version number.

5.2 Locate the emac1 ethernet device and modify the mac-address property to reflect the actual ethernet address (MAC address) of your target board:

emac1: ethernet@20112000
    {
    ....
    mac-address = [ AA BB CC DD EE FF ];
    ....
    }

Step 6: Build the VxWorks Image Project

6.1 Build the U-Boot compatible VIP VxWorks image:

~/WindRiver/workspace/myVIP$ vxprj build uVxWorks

Step 7: Prepare to Boot the VxWorks Image File Using U-Boot

7.1 Make sure the TFTP server is running on the workstation and is set to serve files from the following directory:

~/WindRiver/workspace/myVIP/default

7.2 Power up the target board into the U-Boot shell.

7.3 Set the target board network parameters from the U-Boot shell:

=> setenv ipaddr 192.168.0.3
=> setenv netmask 255.255.255.0
=> setenv serverip 192.168.0.2
=> setenv bootargs 'gem(0,0)host:vxWorks h=192.168.0.2 e=192.168.0.3:ffffff00 u=target pw=vxTarget f=0x01'

NOTE 1: These boot parameters assume an IP address of 192.168.0.2 and target board IP address of 192.168.0.3. Adjust these addresses based on your network configuration. NOTE 2: U-Boot has already configured a unique ethernet address for the target board.

Step 8: Boot and Run VxWorks

8.1 Load the VxWorks image file from the workstation using the U-Boot shell:

=> tftpboot 84000000 uVxWorks

8.2 Load the DTB file from the workstation using the U-Boot shell:

=> tftpboot 88000000 icicle-kit-es-a000-microchip.dtb

8.3 Run the VxWorks image using the U-Boot shell:

=> bootm 84000000 - 88000000

8.4 Once VxWorks has booted, the banner becomes visible on the target console.

Target Name: vxTarget

              VxWorks 7 SMP 64-bit

Copyright 1984-2020 Wind River Systems, Inc.

     Core Kernel version: 3.2.0.0
              Build date: Sep  3 2020 16:25:23
                   Board: SiFive,FU540G
               CPU Count: 4
          OS Memory Size: 1024MB
        ED&R Policy Mode: Permanently Deployed

NOTE 1: For a description of alternative BSP boot workflows, refer to the microchip_pfsoc BSP Supplement Guide on the Wind River Support Network.

Additional Documents

Document Name
VxWorks 7 Boot Loader User's Guide
microchip_pfsoc BSP Supplement Guide
VxWorks 7 RISC-V Architecture Guide
VxWorks 7 Configuration and Build Guide
The DENX U-Boot and Linux Guide
UG0882: PolarFire SoC FPGA ICICLE Kit User Guide
UG0880: PolarFire SoC FPGA Microprocessor Subsystem (MSS) User Guide