6.0 KiB
6.0 KiB
emv9.3 board reference (EMV9.3 Zynq XC7Z100 exciter)
Created 2026-09-26 from the EMV9.3 schematic text (DVBT2_zynq/Notes/auto/emv93_sch.txt,
line numbers below), the Vivado block design (DVBT2_zynq/src/bd/design_1_bd.tcl), the
2026-09-26 cold-boot console captures (Notes/auto/emv93_uboot_baseline_20260926.log and the
old-image Linux boot log SMOD_DVBT2/ci_bram_tp13_wt/Notes/auto/emv93_boot_20260926/COM6.log),
and machine memory M-0025..M-0028. Items marked UNVERIFIED must not be relied on for a
destructive step. Machine-local values (COM ports, IPs, credentials) live in bmem / ~\skills_env.md.
Identity
| Item | Value | Evidence |
|---|---|---|
| Board | EMV9.3 (schematic EMV9.3_20231103.PDF), DVB-T2 exciter variant (prjID emv93-dvbt2) | ref/, README |
| SoC | XC7Z100FFG900-2, Silicon v3.1, JTAG idcode 03736093 (+ arm_dap 4ba00477) | sch 7021, U-Boot banner, M-0028 |
| Hardware handoff | Vivado 2018.1 bitstream/emv93_t2_top.hdf (+ .bit, .bin) |
project |
| PetaLinux | 2018.1 (VM /opt/pkg/petalinux/2018.1); board's previous image: PetaLinux 2018.1, kernel 4.14.0-xilinx-v2018.1, U-Boot 2018.01 |
boot logs |
| DRAM | 1 GiB DDR3 (2 x MT41K256M16), 32-bit, ECC off, 533 MHz; bdinfo DRAM 0x0..0x3FFFFFFF |
U-Boot bdinfo, BD |
Boot mode and QSPI
| Item | Value | Evidence |
|---|---|---|
| Boot mode (current) | QSPI: md.b 0xF800025C = 01 (BOOT_MODE[2:0]=001 = Quad-SPI, PLL enabled); U-Boot modeboot=qspiboot |
baseline log |
| Straps | MIO2 R40 / MIO3 R41 20K to GND (sch 6973-6986); MIO4 R42/R43, MIO5 R23/R44 (6987-6999) also routed to switch SW1 (7059-7066); MIO6 R47 (7011-7020) | sch; physical switch position UNVERIFIED (only the register readback is proven) |
| QSPI parts | 2 x ISSI IS25WP256D (U4 sch 7144, U12 ~7161-7180, "QSPI 256M Bit X2" ~7150), 1.8 V | sch |
| Topology | dual parallel x8 (QSPI0 MIO 1..6, QSPI1 MIO 0,9..13): BD PCW_QSPI_GRP_IO1_ENABLE 1, PCW_DUAL_PARALLEL_QSPI_DATA_MODE x8; U-Boot SF: Detected is25wp256d with page size 512 Bytes, erase size 128 KiB, total 64 MiB; old Linux is25wp256d (65536 Kbytes); u-boot CONFIG_SF_DUAL_FLASH=y |
BD, baseline log |
| Geometry as seen by software | total 64 MiB, page 512 B, erase 128 KiB (dual-parallel view) | U-Boot |
| Layout (kept from ATSC3 image) | boot 0x000000/0x500000 (BOOT.BIN), bootenv 0x500000/0x20000, kernel 0x520000/0x1800000 (image.ub), spare 0x1D20000/0x2E0000; total used 32 MiB, upper 32 MiB unused | ATSC3 configs/config, U-Boot env |
| Env | in QSPI at 0x500000, size 0x20000; the old image never saved it (*** Warning - bad CRC, using default environment) |
baseline log |
| RAM load | netstart=loadaddr=clobstart=0x10000000, dtbnetstart=0x11800000; image.ub.qspi (<= 24 MiB) fits below 0x11800000+; CONFIG_SYS_BOOTM_LEN 0xF000000 |
env, platform-top.h |
| BOOT.BIN | FSBL + U-Boot only (5 MiB partition; PL bit is 17.4 MB and is loaded by Linux through the FPGA manager) | size arithmetic, ATSC3 precedent |
| Flash programmer | Xilinx SDK 2018.1 program_flash (JTAG, Platform Cable USB II 00001d9a325a01, -flash_type qspi-x8-dual_parallel) — vendor tool, present at C:\Xilinx\SDK\2018.1\bin\program_flash; not yet exercised on this board |
M-0028 |
| Recovery | (a) JTAG: program_flash re-write of BOOT.BIN, or xsdb boot of FSBL+U-Boot from JTAG then sf commands; (b) old eMMC still holds the ATSC3 image.ub (FAT p1) + rootfs (ext4 p2) and U-Boot's default env boots it; (c) SD0 slot if the switch is moved to SD mode (UNVERIFIED) |
baseline log |
Console, power, JTAG (machine bowei-us, 2026-09-26)
- Console: PS UART1 (MIO 32/33) =
ttyPS0115200 = host COM6; i.MX6ULL console COM4. - Power: Modbus relay on COM3 (
vivado-mcp power_on/power_off); USB-Blaster switch COM5. Rule:USB_Blast_offbefore any power change; keep >= 12 s off for a cold boot. - JTAG: Platform Cable USB II, needs tens of seconds of "loading firmware" after power-on.
Networking
| Port | Controller | PHY | MAC / IP plan |
|---|---|---|---|
eth1 (silkscreen), Linux eth0 |
PS GEM0, MIO 16..27 RGMII-ID, MDIO MIO 52/53 | YT8521 addr 0 ("ethernet-phy-id0000.011a", generic PHY driver) | 00:0a:35:00:1e:53, static 192.168.1.200/24 (TS input) |
eth2 (PL PHY), Linux eth1 |
PS GEM1 via EMIO GMII -> PL pins | RTL8211EG U900 addr 3 ("ethernet-phy-id001c.c915") | 00:0a:35:00:1e:54, static 192.168.2.200/24 (TP IQ source) |
| i.MX6ULL ports | FEC (KSZ8081) | — | not part of the Zynq system |
Host PC "Ethernet 2" carries 192.168.1.225 and 192.168.2.225 (re-check live each session). The VM is on a NAT network and cannot serve TFTP to the board; run the TFTP server on the Windows host.
Storage
| Item | Value | Evidence |
|---|---|---|
| eMMC | Samsung KLM8G1GETF-B041 on PS SD1 (MIO 46..51, 4-bit), no CD/WP; U-Boot mmc dev 1: MMC 5.1, "8GTF4", 7.3 GiB user, 4 MiB boot, 512 KiB RPMB |
sch 6852-6972, 7085-7129; baseline log |
| Current eMMC content | DOS table: p1 sectors 16..250047 FAT (type 0b) with image.ub 3,828,924 B; p2 sectors 250048.. (15,019,840 sectors, type 83) ext4 root of the old ATSC3 image |
baseline log |
| Linux names | old kernel: eMMC = /dev/mmcblk1; SD0 slot = mmc0 — re-verify on the stock 2018.1 kernel (system-user.dtsi marks e0101000 non-removable) |
old boot log |
| SD0 slot | MIO 40..45, CD not routed (PCW_SD0_GRP_CD_ENABLE 0); empty slot gives U-Boot "Card did not respond to voltage select! ... probe failed: -95" (non-fatal) |
BD, baseline log |
Hazards / stop conditions
- Never program QSPI while the boot mode/recovery route is unproven: prove
program_flash(or xsdb JTAG boot) once with a read-only operation (-blank_checkis destructive-free? no — usexsdbconnect +targetsonly) before the first erase, and keep the ATSC3 BOOT.BIN regenerable fromemv9_atsc3_fpga/petalinux/project-spec-260926/hw-description. - The old eMMC image is the user's fallback until the new production system is accepted; do not repartition it in the QSPI-transition phase.
- Two i.MX6ULL consoles/ports and a 4G modem share the board; they are outside this flow.