mirror of
https://github.com/DigitalDevices/dddvb.git
synced 2023-10-10 13:37:43 +02:00
90 lines
2.6 KiB
Plaintext
90 lines
2.6 KiB
Plaintext
|
OctopusNet
|
||
|
----------
|
||
|
|
||
|
Hardware:
|
||
|
|
||
|
- SoC Atmel SAM9G45 400MHz ARM 926
|
||
|
64 MB DRAM
|
||
|
256 MB NAND flash
|
||
|
|
||
|
- FPGA Lattice ECP3 17
|
||
|
data flash
|
||
|
|
||
|
- 5 port switch Marvell 88E6175R
|
||
|
|
||
|
|
||
|
The FPGA is connected to the memory bus of the G45 and maps control registers into the memory space
|
||
|
of the G45. This is mainly to control the data flow on the FPGA. Only minimal data can be transferred
|
||
|
(e.g. single sections). Transport streams cannot be transferred to the G45 this way!
|
||
|
The FPGA can receive up to 8 TS from up to 4 Duo-Flex cards. You can also can alternatively connect
|
||
|
CI modules to port 2 and 3 (TAP 3 and 4).
|
||
|
|
||
|
The FPGA is also connected to one of the ports of the gigabit switch.
|
||
|
There are up to 12 channels. Each channel can select one input TS, which is then passed through
|
||
|
a PID filter (8192 bit array) and sent to the switch as a UDP/RTP stream.
|
||
|
|
||
|
The G45 is connected to another port of the switch (but only with 100 MBit)
|
||
|
|
||
|
|
||
|
Booting:
|
||
|
|
||
|
The G45 does not boot from the NAND flash but from the dataflash connected to the FPGA. The G45
|
||
|
does not support error correction for the boot sector and NAND with zero error boot pages
|
||
|
is no longer easily available.
|
||
|
Newer Atmel SoCs support 4-bit error correction in boot ROM but not the G45.
|
||
|
|
||
|
So, the G45 boot looks like this:
|
||
|
|
||
|
- Run a minimal boot rom mapped by the FPGA.
|
||
|
- Boot rom loads a modified bootstrap via SPI (provided via FPGA ports) from the dataflash.
|
||
|
- Bootstrap loads u-boot via SPI from dataflash.
|
||
|
- u-boot boots Linux ...
|
||
|
|
||
|
If you remove jumper XX, boot rom is disabled and the G45 will boot from NAND flash like this:
|
||
|
|
||
|
- Internal G45 boot rom bootstrap from NAND flash.
|
||
|
- Bootstrap boots u-boot from NAND flash
|
||
|
- u-boot boots Linux ...
|
||
|
|
||
|
This is just a fall-back since page 0 can contain errors which cannot be corrected by the G45 boot ROM
|
||
|
and the bootstrap code which loads u-boot also does not contain error correction.
|
||
|
|
||
|
|
||
|
|
||
|
- SPI dataflash
|
||
|
|
||
|
0x000000 - 0x003fff FPGA config data
|
||
|
0x004000 - 0x005fff G45 bootstrap
|
||
|
0x010000 - 0x0affff FPGA bitstream
|
||
|
0x0b0000 - 0x15ffff G45 u-boot
|
||
|
0x160000 - 0x1fefff FPGA golden image
|
||
|
0x1ff000 - 0x1fffff FPGA jump to golden image
|
||
|
|
||
|
|
||
|
- NAND flash 256MB, block size 128K (0x20000)
|
||
|
|
||
|
0x00000000 - 0x0001ffff G45 bootstrap (fallback bootstrap if SPI corrupted, pull jumper to use)
|
||
|
0x00020000 - 0x0007ffff G45 u-boot (fallback u-boot if SPI corrupted)
|
||
|
0x00080000 - 0x0009ffff spare (e.g. for bigger u-boot)
|
||
|
0x000a0000 - 0x000bffff G45 u-boot environment
|
||
|
0x000c0000 - 0x000dffff G45 u-boot redundant environment
|
||
|
0x000e0000 - 0x000fffff spare
|
||
|
0x00100000 - 0x01ffffff G45 Linux recovery
|
||
|
0x02000000 - 0x0fffffff Linux UBI
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|