Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

This manual describes how to use the C3V-W Dual EVB (Evaluation Board). C3V-W (LPDDR4) Dual EVB consists of two C3V-W subsystems. One is master which runs Linux software and the other is slave which provides extra 3.75 GiB DRAM, a NPU, and other peripherals (USB3, SD card, GPIO, and etc.). Refe to functional block diagram of C3V-W (LPDDR4) Daul EVB, Master C3V-W subsystem has 8 GiB eMMC, 8 GiB LPDDR4 SDRAM, SD card, USB3 and 1000M Ethernet. Slave C3V-W subsystem has 8 GiB eMMC, 8 GiB LPDDR4 SDRAM, SD card and USB3. CPIO interface connect AXI bus of two subsystems together.

image-20240314-095332.png

 Table of Contents

1. Main Devices or Interfaces Description

The picture below is a photo of the C3V-W Dual EVB.

image-20240314-103313.png

The following table explains briefly:

Items

Subsystem

Explanations

1

Global

12V DC power input. The diameter of the DC Jack plug is 5.5mm. The power supply current of the adapter must be greater than 1A.

2

Global

Main-power switch. Turn down to ON, and turn up to OFF.

3

Slave

Pin-headers J10: For connecting I2C0 and I2C1 signals of Slave C3V-W.

Pin-headers J12: For connecting SPI_CB4 signals of Slave C3V-W.

Pin-headers J14: For connecting PWM (0, 1) and I2C2 signals of Slave C3V-W.

4

Slave

CM4 console (UA6) of Slave C3V-W. Note GND is at the most bottom pin.

It is default serial port of Cortex M4. The default baud rate is 115,200. No parity and 1 stop-bit.

5

Slave

Main console (UA0) of Slave C3V-W. Note GND is at the most bottom pin.

This is default serial port of i-boot, x-boot, Trusted Firmware-A (TF-A), U-Boot and Linux kernel. The default baud rate is 115,200. No parity and 1 stop-bit.

6

Slave

8 GiB LPDDR4 SDRAM of Slave C3V-W

7

Global

Boot configuration switch

8

Slave

Jumper header J31. Plug a jumper in to supply power for burning OTP of Slave C3V-W chip.

9

Master

Socket of micro SD card of Master C3V-W

10

Slave

Type C socket of USB 3.1 Gen1 of Slave C3V-W. It supports Low/Full/High/Super speeds, supports Host, Device and DRD. Current limit of VBUS is 1A.

11

Slave

Slave C3V-W chip (15mm x 15mm, 526-pin, TF-BGA)

12

Slave

8 GiB eMMC of Slave C3V-W

13

Master

RJ-45 socket of Ethernet of Master C3V-W.

It supports 10M/100M/1000M speeds.

14

Slave

Socket of micro SD card of Slave C3V-W

15

Master

8 GiB eMMC of Master C3V-W

16

Master

Jumper header J26. Plug a jumper in to supply power for burning OTP of Master C3V-W chip.

17

Master

Master C3V-W chip (15mm x 15mm, 526-pin, TF-BGA)

18

Master

Type C socket of USB 3.1 Gen1 of Master C3V-W. It supports Low/Full/High/Super speeds, supports Host, Device and DRD. Current limit of VBUS is 1A.

19

Global

Reset key. Reset CM4 and main power-domains, but does not reset RTC.

20

Master

CM4 console (UA6) of Master C3V-W. Note GND is at the most left pin.

It is default serial port of Cortex M4. The default baud rate is 115,200. No parity and 1 stop-bit.

21

Master

8 GiB LPDDR4 SDRAM of Master C3V-W

22

Master

Main console (UA0) of Master C3V-W. Note GND is at the most right pin.

This is default serial port of i-boot, x-boot, Trusted Firmware-A (TF-A), U-Boot and Linux kernel. The default baud rate is 115,200. No parity and 1 stop-bit.

23

Master

Pin-headers J11: For connecting I2C0 and I2C1 signals of Master C3V-W.

Pin-headers J13: For connecting SPI_CB5 signals of Master C3V-W.

Pin-headers J15: For connecting PWM (0, 1) and I2C2 signals of Master C3V-W.

2. Boot Devices and Configuration

C3V-W Dual EVB supports boot from SD card and eMMC for both Master and Slave C3V-W. Refer to table below of selection of boot configuration switches for Master and Slave C3V-W.

Master

Slave

Boot Configuration Switch

SD Card

SD Card

image-20240314-080622.png

SD Card

eMMC

image-20240314-080541.png

eMMC

SD Card

image-20240314-080551.png

eMMC

EMMC

image-20240314-080603.png

3. Map of Addressing Space of Master C3V-W.

Refer to map below for addressing space from view of Master C3V-W when 8 GiB LPDDR4 SDRAM is used:

image-20240314-080439.png

The lowest 3.75 GiB space is mapped to the lower 3.75 GiB of the 8 GiB DRAM of Master C3V-W. The sequential 0.25 GiB space is for devices registers of Master C3V-W. Next 4 GiB space is mapped to upper 4 GiB of the 8 GiB DRAM of Master C3V-W. The 4 GiB space starting from address 0x2 0000 0000 is mapped to Slave C3V-W. The final 0.25 GiB space starting from address 0x3 0000 0000 is mapped to the remaining 0.25 GiB of the lower 4 GiB of the 4 GiB DRAM.

Address space starting from 0x2 0000 0000 is mapped to the lowest 4 GiB space of Slave C3V-W via CPIO interface. If CPU of Master C3V-W want to access DRAM of devices of Slave C3V-W, the base address of Slave C3V-W is from 0x2 0000 0000.

4. Setup CPIO Interface

CPIO interfaces are setup in x-boot for both Master and Slave C3V-W chip.

4.1 Menu config setup of x-boot

For Master C3V-W, please run make xconfig at project top directory. Refer to picture below, when menu pops up, move cursor to “CPIO Mode” and select Master.

image-20240314-014250.png

For Slave C3V-W, please run make xconfig at project top directory. Refer to picture below, when menu pops up, move cursor to “CPIO Mode” and select Slave.

image-20240314-014232.png

4.2 Synchronization of CPIO interface

CPIO of Master and Slave C3V-W should be initialized and training at the same time. Two pair of GPIO signal are used to synchronize the initialization and training.

Direction

Master C3V-W

Slave C3V-W

Slave → Master

GPIO72 (RX)

GPIO96 (TX)

Master → Slave

GPIO74 (TX)

GPIO94 (RX)

Master C3V waits for GPIO72 being HIGH. Set GPIO74 to HIGH and start to train CPIO after receiving HIGH of GPIO72.

Slave C3V set GPIO96 to HIGH and then wait for GPIO94 being HIGH. Start to train CPIO after receiving HIGH of GPIO94.

5. Boot Flow of Software

As normal C3V-W system, Master C3V-W runs i-boot, x-boot, TF-A, OP-TEE, U-Boot, and then Linux while Slave C3V-W stops running after it completes DRAM initialization. Master C3V-W can access any devices including DRAM in Slave C3V-W subsystem.

image-20240314-093219.png

6. Log of Master and Slave C3V-W Subsystem

6.1 Log of Master C3V-W:

[    2.569441] Run /sbin/init as init process
/etc/init.d/rcS starts...
Mounting other filesystems ...
rc.extra [bg]
sdcard boot set...
[    2.795789] remoteproc remoteproc0: powering up f800817c.remoteproc
[    2.798426] remoteproc remoteproc0: Booting fw image firmware, size 244280
[    2.799348] virtio_rpmsg_bus virtio0: rpmsg host is online
[    2.804314] remoteproc0#vdev0buffer: registered virtio0 (type 7)
[    2.810305] remoteproc remoteproc0: remote processor f800817c.remoteproc is now up
[    2.815307] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x0
[    2.826105] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x1
[    2.838487] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x2
Boot CM4 firmware by remoteproc
extra done
End of /etc/init.d/rcS

login[143]: root login on 'console'
~ # [    2.983820] fbcon: Taking over console
~ # devmem 0x2f8800000
0x00000A30
~ #

After Linux boots up successfully, you run “devmem 0x2f8800000” to read chip ID of Slave C3V-W. The chip ID of Slave C3V-W should be 0x00000A30. It implies that CPIO is working well.

6.2 Log of Slave C3V-W:

Run draiminit@0xFA20859D
bootdevice=0x00000019
Built at Mar 13 2024 19:47:40
dram_init
dwc_umctl2_lpddr4_1600_SP7350_for_realchip
MT53E2G32D4_C, 2rank, FBGA=D8CJN
SDRAM_SPEED_1600
dwc_ddrphy_phyinit_main 20231212
dwc_ddrphy_phyinit_out_lpddr4_train1d2d_3200_SP7350
bootdevice:0x00000019
XBOOT_len=0x0000B278
1D IMEM checksum ok
1D DMEM checksum ok
Start to wait for the training firmware to complete v.00 !!!
End of CA training.
End of initialization.
End of read enable training.
End of fine write leveling.
End of read dq deskew training.
End of MPR read delay center optimization.
End of Wrtie leveling coarse delay.
End of write delay center optimization.
End of read delay center optimization.
End of max read latency training.
Training has run successfully.(firmware complete)
bootdevice:0x00000019
2D IMEM checksum ok
2D DMEM checksum ok
Start to wait for the training firmware to complete v.00 !!!
End of initialization.
End of 2D write delay/voltage center optimization.
End of 2D write delay/voltage center optimization.
End of 2D read delay/voltage center optimization.
End of 2D read delay/voltage center optimization.
Training has run successfully.(firmware complete)
Register programming done!!!
Register programming done!!!
dram_init_end
Done draiminit
dram test 0x00800000 - 0x00800400


---- CPIO-R slave mode Begin ----

VCO: 4.0G, PLL: 1.0G
PHY status change: 0x08000001
PHY status check Passed
CPIO Initial Finished
PHY Mode: 0x0000008D
Timer start: 0x00000000
Timer End: 0x000000B2

After completing DRAM initialization and training, it sets up and connect CPIO interface and then stop running.

  • No labels