├── AntMiner_ControlBoard_XC7010_V1.0.png ├── AntMiner_ControlBoard_XC7010_V1.01控制板.pdf ├── Antminer_s9_pynq-main.zip ├── S9miner_sample-master.zip ├── bootlog1.log ├── readme.md ├── uboot_bitmain-antminer-s9.dts └── zynq_wrapper_p01_hello.xpr.xsa /AntMiner_ControlBoard_XC7010_V1.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/polprog/antminer_zynq/1dc1ee7539396d5961959452d69d5b0cdadf3279/AntMiner_ControlBoard_XC7010_V1.0.png -------------------------------------------------------------------------------- /AntMiner_ControlBoard_XC7010_V1.01控制板.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/polprog/antminer_zynq/1dc1ee7539396d5961959452d69d5b0cdadf3279/AntMiner_ControlBoard_XC7010_V1.01控制板.pdf -------------------------------------------------------------------------------- /Antminer_s9_pynq-main.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/polprog/antminer_zynq/1dc1ee7539396d5961959452d69d5b0cdadf3279/Antminer_s9_pynq-main.zip -------------------------------------------------------------------------------- /S9miner_sample-master.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/polprog/antminer_zynq/1dc1ee7539396d5961959452d69d5b0cdadf3279/S9miner_sample-master.zip -------------------------------------------------------------------------------- /bootlog1.log: -------------------------------------------------------------------------------- 1 | 2 | Xilinx First Stage Boot Loader 3 | Release 2015.4 Mar 29 2018-17:25:31 4 | Devcfg driver initialized 5 | Silicon Version 3.1 6 | Boot mode is NAND 7 | InitNand: Geometry = 0x8 8 | Nand driver initialized 9 | NAND Init Done 10 | Flash Base Address: 0xE1000000 11 | Reboot status register: 0x60400000 12 | Multiboot Register: 0x0000C000 13 | Image Start Address: 0x00000000 14 | Partition Header Offset:0x00000C80 15 | Partition Count: 3 16 | Partition Number: 1 17 | Header Dump 18 | Image Word Len: 0x0007F2E8 19 | Data Word Len: 0x0007F2E8 20 | Partition Word Len:0x0007F2E8 21 | Load Addr: 0x00000000 22 | Exec Addr: 0x00000000 23 | Partition Start: 0x000075D0 24 | Partition Attr: 0x00000020 25 | Partition Checksum Offset: 0x00000000 26 | Section Count: 0x00000001 27 | Checksum: 0xFFE7AF06 28 | Bitstream 29 | In FsblHookBeforeBitstreamDload function 30 | PCAP:StatusReg = 0x40000A30 31 | PCAP:device ready 32 | PCAP:Clear done 33 | Level Shifter Value = 0xA 34 | Devcfg Status register = 0x40000A30 35 | PCAP:Fabric is Initialized done 36 | PCAP register dump: 37 | PCAP CTRL 0xF8007000: 0x4C00E07F 38 | PCAP LOCK 0xF8007004: 0x0000001A 39 | PCAP CONFIG 0xF8007008: 0x00000508 40 | PCAP ISR 0xF800700C: 0x0802000B 41 | PCAP IMR 0xF8007010: 0xFFFFFFFF 42 | PCAP STATUS 0xF8007014: 0x50000F30 43 | PCAP DMA SRC ADDR 0xF8007018: 0x00100001 44 | PCAP DMA DEST ADDR 0xF800701C: 0xFFFFFFFF 45 | PCAP DMA SRC LEN 0xF8007020: 0x0007F2E8 46 | PCAP DMA DEST LEN 0xF8007024: 0x0007F2E8 47 | PCAP ROM SHADOW CTRL 0xF8007028: 0xFFFFFFFF 48 | PCAP MBOOT 0xF800702C: 0x0000C000 49 | PCAP SW ID 0xF8007030: 0x00000000 50 | PCAP UNLOCK 0xF8007034: 0x757BDF0D 51 | PCAP MCTRL 0xF8007080: 0x30800100 52 | 53 | DMA Done ! 54 | 55 | FPGA Done ! 56 | In FsblHookAfterBitstreamDload function 57 | Partition Number: 2 58 | Header Dump 59 | Image Word Len: 0x00015B20 60 | Data Word Len: 0x00015B20 61 | Partition Word Len:0x00015B20 62 | Load Addr: 0x04000000 63 | Exec Addr: 0x04000000 64 | Partition Start: 0x000868C0 65 | Partition Attr: 0x00000010 66 | Partition Checksum Offset: 0x00000000 67 | Section Count: 0x00000001 68 | Checksum: 0xF7F3836E 69 | Application 70 | Handoff Address: 0x04000000 71 | In FsblHookBeforeHandoff function 72 | SUCCESSFUL_HANDOFF 73 | FSBL Status = 0x1 74 | 75 | 76 | U-Boot 2014.01-gfb1d3e7-dirty (Mar 09 2018 - 19:36:04) 77 | 78 | I2C: ready 79 | Write: cnt = 0x08000000, addr = 0x20000000, *addr = 0xf7ffffff 80 | Write: cnt = 0x04000000, addr = 0x10000000, *addr = 0xfbffffff 81 | Write: cnt = 0x02000000, addr = 0x08000000, *addr = 0xfdffffff 82 | Write: cnt = 0x01000000, addr = 0x04000000, *addr = 0xfeffffff 83 | Write: cnt = 0x00800000, addr = 0x02000000, *addr = 0xff7fffff 84 | Write: cnt = 0x00400000, addr = 0x01000000, *addr = 0xffbfffff 85 | Write: cnt = 0x00200000, addr = 0x00800000, *addr = 0xffdfffff 86 | Write: cnt = 0x00100000, addr = 0x00400000, *addr = 0xffefffff 87 | Write: cnt = 0x00080000, addr = 0x00200000, *addr = 0xfff7ffff 88 | Write: cnt = 0x00040000, addr = 0x00100000, *addr = 0xfffbffff 89 | Write: cnt = 0x00020000, addr = 0x00080000, *addr = 0xfffdffff 90 | Write: cnt = 0x00010000, addr = 0x00040000, *addr = 0xfffeffff 91 | Write: cnt = 0x00008000, addr = 0x00020000, *addr = 0xffff7fff 92 | Write: cnt = 0x00004000, addr = 0x00010000, *addr = 0xffffbfff 93 | Write: cnt = 0x00002000, addr = 0x00008000, *addr = 0xffffdfff 94 | Write: cnt = 0x00001000, addr = 0x00004000, *addr = 0xffffefff 95 | Write: cnt = 0x00000800, addr = 0x00002000, *addr = 0xfffff7ff 96 | Write: cnt = 0x00000400, addr = 0x00001000, *addr = 0xfffffbff 97 | Write: cnt = 0x00000200, addr = 0x00000800, *addr = 0xfffffdff 98 | Write: cnt = 0x00000100, addr = 0x00000400, *addr = 0xfffffeff 99 | Write: cnt = 0x00000080, addr = 0x00000200, *addr = 0xffffff7f 100 | Write: cnt = 0x00000040, addr = 0x00000100, *addr = 0xffffffbf 101 | Write: cnt = 0x00000020, addr = 0x00000080, *addr = 0xffffffdf 102 | Write: cnt = 0x00000010, addr = 0x00000040, *addr = 0xffffffef 103 | Write: cnt = 0x00000008, addr = 0x00000020, *addr = 0xfffffff7 104 | Write: cnt = 0x00000004, addr = 0x00000010, *addr = 0xfffffffb 105 | Write: cnt = 0x00000002, addr = 0x00000008, *addr = 0xfffffffd 106 | Write: cnt = 0x00000001, addr = 0x00000004, *addr = 0xfffffffe 107 | Read: cnt = 0x00000001, addr = 0x00000004, val = 0xfffffffe 108 | Read: cnt = 0x00000002, addr = 0x00000008, val = 0xfffffffd 109 | Read: cnt = 0x00000004, addr = 0x00000010, val = 0xfffffffb 110 | Read: cnt = 0x00000008, addr = 0x00000020, val = 0xfffffff7 111 | Read: cnt = 0x00000010, addr = 0x00000040, val = 0xffffffef 112 | Read: cnt = 0x00000020, addr = 0x00000080, val = 0xffffffdf 113 | Read: cnt = 0x00000040, addr = 0x00000100, val = 0xffffffbf 114 | Read: cnt = 0x00000080, addr = 0x00000200, val = 0xffffff7f 115 | Read: cnt = 0x00000100, addr = 0x00000400, val = 0xfffffeff 116 | Read: cnt = 0x00000200, addr = 0x00000800, val = 0xfffffdff 117 | Read: cnt = 0x00000400, addr = 0x00001000, val = 0xfffffbff 118 | Read: cnt = 0x00000800, addr = 0x00002000, val = 0xfffff7ff 119 | Read: cnt = 0x00001000, addr = 0x00004000, val = 0xffffefff 120 | Read: cnt = 0x00002000, addr = 0x00008000, val = 0xffffdfff 121 | Read: cnt = 0x00004000, addr = 0x00010000, val = 0xffffbfff 122 | Read: cnt = 0x00008000, addr = 0x00020000, val = 0xffff7fff 123 | Read: cnt = 0x00010000, addr = 0x00040000, val = 0xfffeffff 124 | Read: cnt = 0x00020000, addr = 0x00080000, val = 0xfffdffff 125 | Read: cnt = 0x00040000, addr = 0x00100000, val = 0xfffbffff 126 | Read: cnt = 0x00080000, addr = 0x00200000, val = 0xfff7ffff 127 | Read: cnt = 0x00100000, addr = 0x00400000, val = 0xffefffff 128 | Read: cnt = 0x00200000, addr = 0x00800000, val = 0xffdfffff 129 | Read: cnt = 0x00400000, addr = 0x01000000, val = 0xffbfffff 130 | Read: cnt = 0x00800000, addr = 0x02000000, val = 0xff7fffff 131 | Read: cnt = 0x01000000, addr = 0x04000000, val = 0xfeffffff 132 | Read: cnt = 0x02000000, addr = 0x08000000, val = 0xfdffffff 133 | Read: cnt = 0x04000000, addr = 0x10000000, val = 0xfbffffff 134 | Read: cnt = 0x08000000, addr = 0x20000000, val = 0x00000000 135 | size = 0x20000000 136 | ---1 sys_sdram_size = 0x20000000 137 | --- dram_init: sys_sdram_size = 512 MB 138 | 139 | ---3 gd->ram_size = 0x1f000000 140 | Memory: ECC disabled 141 | DRAM: 496 MiB 142 | NAND: 256 MiB 143 | MMC: zynq_sdhci: 0 144 | *** Warning - bad CRC, using default environment 145 | 146 | In: serial 147 | Out: serial 148 | Err: serial 149 | ~~~1 gd->ram_size = 0x1f000000 150 | ~~~ board_late_init: ddr_size_type = 1 151 | 152 | --- gpio value = 0x000cc0ff 153 | --- mount angstrom file system 154 | bootargs: noinitrd mem=496M console=ttyPS0,115200 root=ubi0:rootfs ubi.mtd=1 rootfstype=ubifs rw rootwait 155 | --- upgrade marker upgrade_buf[0] = 0xff --- 156 | --- upgrade marker upgrade_buf[1] = 0xff --- 157 | --- upgrade marker upgrade_buf[2] = 0xff --- 158 | --- upgrade marker upgrade_buf[3] = 0xff --- 159 | --- upgrade marker upgrade_buf[4] = 0xff --- 160 | --- upgrade marker upgrade_buf[5] = 0xff --- 161 | --- upgrade marker upgrade_buf[6] = 0xff --- 162 | --- upgrade marker upgrade_buf[7] = 0xff --- 163 | --- upgrade marker upgrade_buf[8] = 0xff --- 164 | --- upgrade marker upgrade_buf[9] = 0xff --- 165 | --- upgrade marker upgrade_buf[10] = 0xff --- 166 | --- upgrade marker upgrade_buf[11] = 0xff --- 167 | --- upgrade marker upgrade_buf[12] = 0xff --- 168 | --- upgrade marker upgrade_buf[13] = 0xff --- 169 | --- upgrade marker upgrade_buf[14] = 0xff --- 170 | --- upgrade marker upgrade_buf[15] = 0xff --- 171 | bootargs: noinitrd mem=496M console=ttyPS0,115200 root=ubi0:rootfs ubi.mtd=1 rootfstype=ubifs rw rootwait 172 | Net: Gem.e000b000 173 | Hit any key to stop autoboot: 0 174 | Copying Linux from NAND flash to RAM... 175 | 176 | NAND read: device 0 offset 0x1100000, size 0x800000 177 | 8388608 bytes read: OK 178 | 179 | NAND read: device 0 offset 0x1020000, size 0x20000 180 | 131072 bytes read: OK 181 | ## Booting kernel from Legacy Image at 02000000 ... 182 | Image Name: Linux-3.14.0-xilinx-gb190cb0-dir 183 | Image Type: ARM Linux Kernel Image (uncompressed) 184 | Data Size: 3779264 Bytes = 3.6 MiB 185 | Load Address: 00008000 186 | Entry Point: 00008000 187 | Verifying Checksum ... OK 188 | ## Flattened Device Tree blob at 03000000 189 | Booting using the fdt blob at 0x3000000 190 | Loading Kernel Image ... OK 191 | Loading Device Tree to 1eb39000, end 1eb3dd0f ... OK 192 | 193 | Starting kernel ... 194 | 195 | Uncompressing Linux... done, booting the kernel. 196 | [ 0.000000] Booting Linux on physical CPU 0x0 197 | [ 0.000000] Linux version 3.14.0-xilinx-gb190cb0-dirty (lzq@armdev2) (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-23) ) #57 SMP PREEMPT Fri Dec 9 14:49:22 CST 2016 198 | [ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d 199 | [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache 200 | [ 0.000000] Machine model: Xilinx Zynq 201 | [ 0.000000] cma: CMA: reserved 128 MiB at 16800000 202 | [ 0.000000] Memory policy: Data cache writealloc 203 | [ 0.000000] PERCPU: Embedded 8 pages/cpu @debc1000 s9088 r8192 d15488 u32768 204 | [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 125984 205 | [ 0.000000] Kernel command line: noinitrd mem=496M console=ttyPS0,115200 root=ubi0:rootfs ubi.mtd=1 rootfstype=ubifs rw rootwait 206 | [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) 207 | [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) 208 | [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) 209 | [ 0.000000] Memory: 364356K/507904K available (5032K kernel code, 283K rwdata, 1916K rodata, 204K init, 258K bss, 143548K reserved, 0K highmem) 210 | [ 0.000000] Virtual kernel memory layout: 211 | [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) 212 | [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) 213 | [ 0.000000] vmalloc : 0xdf800000 - 0xff000000 ( 504 MB) 214 | [ 0.000000] lowmem : 0xc0000000 - 0xdf000000 ( 496 MB) 215 | [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) 216 | [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB) 217 | [ 0.000000] .text : 0xc0008000 - 0xc06d1374 (6949 kB) 218 | [ 0.000000] .init : 0xc06d2000 - 0xc0705380 ( 205 kB) 219 | [ 0.000000] .data : 0xc0706000 - 0xc074cf78 ( 284 kB) 220 | [ 0.000000] .bss : 0xc074cf84 - 0xc078d9fc ( 259 kB) 221 | [ 0.000000] Preemptible hierarchical RCU implementation. 222 | [ 0.000000] Dump stacks of tasks blocking RCU-preempt GP. 223 | [ 0.000000] RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2. 224 | [ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 225 | [ 0.000000] NR_IRQS:16 nr_irqs:16 16 226 | [ 0.000000] ps7-slcr mapped to df802000 227 | [ 0.000000] zynq_clock_init: clkc starts at df802100 228 | [ 0.000000] Zynq clock init 229 | [ 0.000014] sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 3298534883328ns 230 | [ 0.000288] ps7-ttc #0 at df804000, irq=43 231 | [ 0.000582] Console: colour dummy device 80x30 232 | [ 0.000610] Calibrating delay loop... 1325.46 BogoMIPS (lpj=6627328) 233 | [ 0.040195] pid_max: default: 32768 minimum: 301 234 | [ 0.040402] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) 235 | [ 0.040422] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) 236 | [ 0.042530] CPU: Testing write buffer coherency: ok 237 | [ 0.042838] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 238 | [ 0.042895] Setting up static identity map for 0x4c4af8 - 0x4c4b50 239 | [ 0.043110] L310 cache controller enabled 240 | [ 0.043129] l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x72760000, Cache size: 512 kB 241 | [ 0.120981] CPU1: Booted secondary processor 242 | [ 0.210217] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 243 | [ 0.210345] Brought up 2 CPUs 244 | [ 0.210364] SMP: Total of 2 processors activated. 245 | [ 0.210372] CPU: All CPU(s) started in SVC mode. 246 | [ 0.211035] devtmpfs: initialized 247 | [ 0.213426] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4 248 | [ 0.214602] regulator-dummy: no parameters 249 | [ 0.221952] NET: Registered protocol family 16 250 | [ 0.224231] DMA: preallocated 256 KiB pool for atomic coherent allocations 251 | [ 0.226482] cpuidle: using governor ladder 252 | [ 0.226495] cpuidle: using governor menu 253 | [ 0.233804] syscon f8000000.ps7-slcr: regmap [mem 0xf8000000-0xf8000fff] registered 254 | [ 0.235297] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers. 255 | [ 0.235310] hw-breakpoint: maximum watchpoint size is 4 bytes. 256 | [ 0.235412] zynq-ocm f800c000.ps7-ocmc: ZYNQ OCM pool: 256 KiB @ 0xdf880000 257 | [ 0.256987] bio: create slab at 0 258 | [ 0.258341] vgaarb: loaded 259 | [ 0.259017] SCSI subsystem initialized 260 | [ 0.259874] usbcore: registered new interface driver usbfs 261 | [ 0.260048] usbcore: registered new interface driver hub 262 | [ 0.260481] usbcore: registered new device driver usb 263 | [ 0.261000] media: Linux media interface: v0.10 264 | [ 0.261811] Linux video capture interface: v2.00 265 | [ 0.262080] pps_core: LinuxPPS API ver. 1 registered 266 | [ 0.262092] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti 267 | [ 0.262224] PTP clock support registered 268 | [ 0.262574] EDAC MC: Ver: 3.0.0 269 | [ 0.263606] Advanced Linux Sound Architecture Driver Initialized. 270 | [ 0.266326] DMA-API: preallocated 4096 debug entries 271 | [ 0.266339] DMA-API: debugging enabled by kernel config 272 | [ 0.266409] Switched to clocksource arm_global_timer 273 | [ 0.286056] NET: Registered protocol family 2 274 | [ 0.286743] TCP established hash table entries: 4096 (order: 2, 16384 bytes) 275 | [ 0.286800] TCP bind hash table entries: 4096 (order: 3, 32768 bytes) 276 | [ 0.286885] TCP: Hash tables configured (established 4096 bind 4096) 277 | [ 0.286929] TCP: reno registered 278 | [ 0.286946] UDP hash table entries: 256 (order: 1, 8192 bytes) 279 | [ 0.286978] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes) 280 | [ 0.287204] NET: Registered protocol family 1 281 | [ 0.287544] RPC: Registered named UNIX socket transport module. 282 | [ 0.287557] RPC: Registered udp transport module. 283 | [ 0.287565] RPC: Registered tcp transport module. 284 | [ 0.287573] RPC: Registered tcp NFSv4.1 backchannel transport module. 285 | [ 0.288010] hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available 286 | [ 0.289997] futex hash table entries: 512 (order: 3, 32768 bytes) 287 | [ 0.292051] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc. 288 | [ 0.292234] msgmni has been set to 967 289 | [ 0.292994] io scheduler noop registered 290 | [ 0.293007] io scheduler deadline registered 291 | [ 0.293048] io scheduler cfq registered (default) 292 | [ 0.303844] dma-pl330 f8003000.ps7-dma: Loaded driver for PL330 DMAC-2364208 293 | [ 0.303863] dma-pl330 f8003000.ps7-dma: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16 294 | [ 0.425703] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 82, base_baud = 3124999) is a xuartps 295 | [ 0.993869] console [ttyPS0] enabled 296 | [ 0.998121] xdevcfg f8007000.ps7-dev-cfg: ioremap 0xf8007000 to df866000 297 | [ 1.005732] [drm] Initialized drm 1.1.0 20060810 298 | [ 1.022663] brd: module loaded 299 | [ 1.032018] loop: module loaded 300 | [ 1.041372] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k 301 | [ 1.047307] e1000e: Copyright(c) 1999 - 2013 Intel Corporation. 302 | [ 1.055053] libphy: XEMACPS mii bus: probed 303 | [ 1.059635] ------------- phy_id = 0x3625e62 304 | [ 1.064354] xemacps e000b000.ps7-ethernet: pdev->id -1, baseaddr 0xe000b000, irq 54 305 | [ 1.072950] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver 306 | [ 1.079600] ehci-pci: EHCI PCI platform driver 307 | [ 1.086822] zynq-dr e0002000.ps7-usb: Unable to init USB phy, missing? 308 | [ 1.093613] usbcore: registered new interface driver usb-storage 309 | [ 1.100466] mousedev: PS/2 mouse device common for all mice 310 | [ 1.106581] i2c /dev entries driver 311 | [ 1.113430] zynq-edac f8006000.ps7-ddrc: ecc not enabled 312 | [ 1.118967] cpufreq_cpu0: failed to get cpu0 regulator: -19 313 | [ 1.124827] Xilinx Zynq CpuIdle Driver started 314 | [ 1.129705] sdhci: Secure Digital Host Controller Interface driver 315 | [ 1.135796] sdhci: Copyright(c) Pierre Ossman 316 | [ 1.140159] sdhci-pltfm: SDHCI platform and OF driver helper 317 | [ 1.147003] mmc0: no vqmmc regulator found 318 | [ 1.151015] mmc0: no vmmc regulator found 319 | [ 1.186429] mmc0: SDHCI controller on e0100000.ps7-sdio [e0100000.ps7-sdio] using ADMA 320 | [ 1.195095] usbcore: registered new interface driver usbhid 321 | [ 1.200603] usbhid: USB HID core driver 322 | [ 1.205315] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xda 323 | [ 1.211614] nand: Micron MT29F2G08ABAEAWP 324 | [ 1.215577] nand: 256MiB, SLC, page size: 2048, OOB size: 64 325 | [ 1.221509] Bad block table found at page 131008, version 0x01 326 | [ 1.227732] Bad block table found at page 130944, version 0x01 327 | [ 1.233779] 3 ofpart partitions found on MTD device pl353-nand 328 | [ 1.239557] Creating 3 MTD partitions on "pl353-nand": 329 | [ 1.244649] 0x000000000000-0x000002000000 : "BOOT.bin-env-dts-kernel" 330 | [ 1.252666] 0x000002000000-0x00000b000000 : "angstram-rootfs" 331 | [ 1.259967] 0x00000b000000-0x000010000000 : "upgrade-rootfs" 332 | [ 1.268868] TCP: cubic registered 333 | [ 1.272101] NET: Registered protocol family 17 334 | [ 1.276804] Registering SWP/SWPB emulation handler 335 | [ 1.282681] regulator-dummy: disabling 336 | [ 1.286983] UBI: attaching mtd1 to ubi0 337 | [ 1.811544] UBI: scanning is finished 338 | [ 1.823065] UBI: attached mtd1 (name "angstram-rootfs", size 144 MiB) to ubi0 339 | [ 1.830147] UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes 340 | [ 1.836909] UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048 341 | [ 1.843574] UBI: VID header offset: 2048 (aligned 2048), data offset: 4096 342 | [ 1.850452] UBI: good PEBs: 1152, bad PEBs: 0, corrupted PEBs: 0 343 | [ 1.856432] UBI: user volume: 1, internal volumes: 1, max. volumes count: 128 344 | [ 1.863540] UBI: max/mean erase counter: 250/152, WL threshold: 4096, image sequence number: 671186829 345 | [ 1.872842] UBI: available PEBs: 0, total reserved PEBs: 1152, PEBs reserved for bad PEB handling: 40 346 | [ 1.882058] UBI: background thread "ubi_bgt0d" started, PID 1080 347 | [ 1.882064] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) 348 | [ 1.885912] ALSA device list: 349 | [ 1.885916] No soundcards found. 350 | [ 1.902338] UBIFS: background thread "ubifs_bgt0_0" started, PID 1082 351 | [ 1.931203] UBIFS: recovery needed 352 | [ 2.036525] UBIFS: recovery completed 353 | [ 2.040182] UBIFS: mounted UBI device 0, volume 0, name "rootfs" 354 | [ 2.046102] UBIFS: LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes 355 | [ 2.055236] UBIFS: FS size: 128626688 bytes (122 MiB, 1013 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs) 356 | [ 2.065120] UBIFS: reserved for root: 0 bytes (0 KiB) 357 | [ 2.070160] UBIFS: media format: w4/r0 (latest is w4/r0), UUID B922E417-6482-4CD7-BBBD-FCE1BF9BDB4C, small LPT model 358 | [ 2.081206] VFS: Mounted root (ubifs filesystem) on device 0:11. 359 | [ 2.088391] devtmpfs: mounted 360 | [ 2.091490] Freeing unused kernel memory: 204K (c06d2000 - c0705000) 361 | INIT: version 2.88 booting 362 | Starting Bootlog daemon: bootlogd. 363 | Starting Monitor-ipsig daemon: monitor-ipsig. 364 | [ 2.890066] random: dd urandom read with 0 bits of entropy available 365 | Starting initc 366 | cp: can't stat '/etc/minermonitor.conf.factory': No such file or directory 367 | cp: can't stat '/etc/dataformatconfig': No such file or directory 368 | [ 3.126423] 369 | [ 3.126423] bcm54xx_config_init 370 | 2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 371 | link/ether 00:0a:35:00:01:22 brd ff:ff:ff:ff:ff:ff 372 | 32:d9:8b:e2:fc:ab 373 | [ 3.726423] 374 | [ 3.726423] bcm54xx_config_init 375 | Stopping ntpd: start-stop-daemon: warning: killing process 1330: No such process 376 | done 377 | Error resolving pool.ntp.org: No address associated with hostname (-5) 378 | 1 Jan 03:00:23 ntpdate[1208]: Can't find host pool.ntp.org: No address associated with hostname (-5) 379 | 1 Jan 03:00:23 ntpdate[1208]: no servers can be used, exiting 380 | Starting ntpd: done 381 | Starting Dropbear SSH server: dropbear. 382 | Starting ntpd: /usr/bin/ntpd is already running 383 | done 384 | Starting Avahi Daemon: Process 1230 died: No such process; trying to remove PID file. (/var/run/avahi-daemon//pid) 385 | avahi-daemon. 386 | Fri Dec 9 16:49:00 UTC 2022 387 | Starting Lighttpd Web Server: xb. 388 | Starting bmminer daemon: 192.168.1.1 is reachable 389 | No bitmain_axi.ko 390 | [ 30.225340] In axi fpga driver! 391 | [ 30.228437] request_mem_region OK! 392 | [ 30.231799] AXI fpga dev virtual address is 0xdf9fc000 393 | [ 30.236927] *base_vir_addr = 0xc51a 394 | memory_size = 495632 395 | fpga_mem_offset_addr=0x1F000000 396 | [ 30.246591] In fpga mem driver! 397 | [ 30.251914] request_mem_region OK! 398 | [ 30.255476] fpga mem virtual address is 0xe2000000 399 | killall: bmminer: no process killed 400 | bmminer. 401 | Starting Monitor-recobtn daemon: monitor-recobtn. 402 | INIT: Entering runlevel: 5 403 | [1970-01-01 03:00:30.325] Miner compile time: Mon May 4 07:49:19 CST 2020 type: Antminer S9 (vnish 3.8.6) 404 | [1970-01-01 03:00:30.326] Started cgminer 4.11.1 405 | [1970-01-01 03:00:30.326] Loaded configuration file /config/bmminer.conf 406 | [1970-01-01 03:00:30.326] Pool checking.. 407 | Stopping Bootlog daemon: bootlogd. 408 | rm: can't remove '/config/temp_sensor': No such file or directory 409 | 410 | .---O---. 411 | | | .-. o o 412 | | | |-----.-----.-----.| | .----..-----.-----. 413 | | | | __ | ---'| '--.| .-'| | | 414 | | | | | | |--- || --'| | | ' | | | | 415 | '---'---'--'--'--. |-----''----''--' '-----'-'-'-' 416 | -' | 417 | '---' 418 | 419 | The Angstrom Distribution XXXXX /dev/ttyPS0 420 | 421 | Angstrom v2013.12 - Kernel 3.14.0-xilinx-gb190cb0-dirty 422 | 423 | XXXXX login: 424 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | Antminer S9 2 | =========== 3 | 4 | This repository aims to collect information about Bitmain Antminer S9 control boards. These boards are Zynq 7010 based single board computers capable of running Linux. 5 | 6 | ![AntMiner S9 V1.0 board photo](AntMiner_ControlBoard_XC7010_V1.0.png) 7 | 8 | The Antminer S9 control board has onboard flash, Fast Ethernet and SD card slot. It is particularly interesting as it has more GPIOs available than the EBAZ-4205 board. 9 | 10 | The plan is to provide several files ready to use with Petalinux build tools as well as Petalinux adjustments for the board, allowing different customizability levels: 11 | 12 | * Vivado project 13 | * Exported Vivado hardware (XSA) to allow for creating a Petalinux project without having to install Vivado 14 | * Ready made images to put on SD card or TFTP server ? 15 | 16 | This readme will be rewritten later on. 17 | 18 | Sources 19 | -------- 20 | 21 | * https://github.com/guannan-he/Antminer_s9_pynq 22 | * https://github.com/Xilinx/u-boot-xlnx/blob/master/arch/arm/dts/bitmain-antminer-s9.dts 23 | * https://github.com/KarolNi/S9miner_sample 24 | 25 | Licence 26 | ------- 27 | 28 | This project is released on GPL2.0 licence except for schematic files. Schematics copyright Bitmain Technologies Ltd. -------------------------------------------------------------------------------- /uboot_bitmain-antminer-s9.dts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0 2 | /* 3 | * Bitmain Antminer S9 board DTS 4 | * 5 | * Copyright (C) 2018 Michal Simek 6 | * Copyright (C) 2018 VanguardiaSur 7 | */ 8 | /dts-v1/; 9 | #include "zynq-7000.dtsi" 10 | 11 | / { 12 | model = "Bitmain Antminer S9 Board"; 13 | compatible = "bitmain,antminer-s9", "xlnx,zynq-7000"; 14 | 15 | aliases { 16 | ethernet0 = &gem0; 17 | serial0 = &uart1; 18 | mmc0 = &sdhci0; 19 | gpio0 = &gpio0; 20 | }; 21 | 22 | memory@0 { 23 | device_type = "memory"; 24 | reg = <0x0 0x40000000>; 25 | }; 26 | 27 | reserved-memory { 28 | #address-cells = <1>; 29 | #size-cells = <1>; 30 | ranges; 31 | 32 | bootcount@efffff0 { 33 | reg = <0xefffff0 0x10>; 34 | no-map; 35 | }; 36 | 37 | fpga_space@f000000 { 38 | reg = <0xf000000 0x1000000>; 39 | no-map; 40 | }; 41 | }; 42 | 43 | chosen { 44 | bootargs = "earlycon"; 45 | stdout-path = "serial0:115200n8"; 46 | }; 47 | }; 48 | 49 | &clkc { 50 | ps-clk-frequency = <33333333>; 51 | }; 52 | 53 | &nfc0 { 54 | status = "okay"; 55 | }; 56 | 57 | &smcc { 58 | status = "okay"; 59 | }; 60 | 61 | &gem0 { 62 | status = "okay"; 63 | phy-mode = "rgmii-id"; 64 | phy-handle = <ðernet_phy>; 65 | 66 | /* 0362/5e62 */ 67 | ethernet_phy: ethernet-phy@1 { 68 | reg = <1>; 69 | }; 70 | }; 71 | 72 | &sdhci0 { 73 | u-boot,dm-pre-reloc; 74 | status = "okay"; 75 | disable-wp; 76 | }; 77 | 78 | &uart1 { 79 | u-boot,dm-pre-reloc; 80 | status = "okay"; 81 | }; 82 | 83 | &watchdog0 { 84 | reset-on-timeout; 85 | timeout-sec = <200>; 86 | }; 87 | -------------------------------------------------------------------------------- /zynq_wrapper_p01_hello.xpr.xsa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/polprog/antminer_zynq/1dc1ee7539396d5961959452d69d5b0cdadf3279/zynq_wrapper_p01_hello.xpr.xsa --------------------------------------------------------------------------------