Understand there are fast secondary pins on the interface but no documentation for them??
The pi 3 in theory should make a really useful NAS
David


W. H. Heydt wrote:While I agree that a fast bus available for mass storage would be an excellent addition to the Pi, one does not exist at present. Or--at least--not one that anyone outside of the RPF knows about.
My own feeling is that a fast mass storage bus is the last significant component missing from the Pi...and most (but not all) other boards. Should such a thing be added, there are a number of possibilities. Among them are SATA (preferably at least SATA-II), M.2 (PCIe, which is very, very unlikely), or USB 3.0. Part of the problem is, if an HDD/SSD bus connector were added to the Pi, where could it be put?
If you really HAVE to have a fast mass storage bus, there are a few choices that I know of in the inexpensive SBC market. The boards based on the Allwinner A20 (e.g. Cubieboard 2, Banana Pi) generally expose a SATA-II port. There is at least one board with a USB 3.0 port (the Roseapple Pi). The problem is that the SoCs are all back at least one "generation" of Pi. The A20 is a dual-core A7 at 1GHz with 1GB RAM (basically, 1/2 of a Pi2B) and the Roseapple Pi is a quad-core A9 at 1.1GHz with 2GB RAM, which makes it about a Pi2.5B. However, you won't get the kind of software or community support with those boards that you get with a Pi.
My big hope is that in the future--probably about 3 years--the next major Pi iteration--call it the "Pi4"--will at least have USB 3 on the SoC, even if it is not initially exposed. And then at some point, the USB ports on the board can be changed to be USB 3.
Not sure if you'd caught my post on the last thread that SMI seemed to be mentioned on - viewtopic.php?f=41&t=130574&p=945237#p945237mikronauts wrote:"SMI" ie Secondary Memory Interface bus is there on all A+/B+/2/3/Zero Pi's, but for some unknown reason the RPF is not releasing information on how to use it.
I've asked a number of times in the last couple of years, and the most encouraging reply I ever got is "we will consider documenting it in the future". I even tried to get the information from a Broadcom FAE, and was told "ask the foundation, they have the info you need"
What I know so far:
- 16 bit data bus
- 16 bit address bus
- an ALE like signal
- perhaps eight low order memory address bits on eight pins
It seems to have been made for attaching a small (<16MB) amount of static ram / flash, but I can think of MANY uses for it!
I'd love to play with it, but at the very least I'd need control register documentation, exact pin/function, and how to enable it (with the registers).
6by9 wrote:Not sure if you'd caught my post on the last thread that SMI seemed to be mentioned on - viewtopic.php?f=41&t=130574&p=945237#p945237mikronauts wrote:"SMI" ie Secondary Memory Interface bus is there on all A+/B+/2/3/Zero Pi's, but for some unknown reason the RPF is not releasing information on how to use it.
I've asked a number of times in the last couple of years, and the most encouraging reply I ever got is "we will consider documenting it in the future". I even tried to get the information from a Broadcom FAE, and was told "ask the foundation, they have the info you need"
What I know so far:
- 16 bit data bus
- 16 bit address bus
- an ALE like signal
- perhaps eight low order memory address bits on eight pins
It seems to have been made for attaching a small (<16MB) amount of static ram / flash, but I can think of MANY uses for it!
I'd love to play with it, but at the very least I'd need control register documentation, exact pin/function, and how to enable it (with the registers).
"I don't know much about what/how they got used, but had you noticed:
https://github.com/raspberrypi/linux/bl ... 2835_smi.c
https://github.com/raspberrypi/linux/bl ... _smi_dev.c
https://github.com/raspberrypi/linux/bl ... smi_nand.c
and device tree bindings in Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt and Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt ..."
The host port is primarily a slave port. It requires external processor attention to read/write data to/from BCM2835. In theory you could use FPGA glue to come up with a bidirectional data path, but adding any sort of decent-speed FPGA puts 10s of dollars of cost on a board.adun wrote:Actually there are two fast data buses on the soc.
HOST: The host Interface is a 8/16-bit data bus that can be configured to do DMA transfers. Unfortunately the pins are not brought out (internally connected to GND) on any of the RPi versions including CM. I still hope that one day we will get access to those pins on an new CM or revision. As those pins are additional to the GPIO banks.
This sounds rather like a HAT as a "smart bridge" (to SATA or some other high speed mass storage bus) *might* be a viable solution if the cost could be kept under control (say, < $40).jdb wrote:The host port is primarily a slave port. It requires external processor attention to read/write data to/from BCM2835. In theory you could use FPGA glue to come up with a bidirectional data path, but adding any sort of decent-speed FPGA puts 10s of dollars of cost on a board.adun wrote:Actually there are two fast data buses on the soc.
HOST: The host Interface is a 8/16-bit data bus that can be configured to do DMA transfers. Unfortunately the pins are not brought out (internally connected to GND) on any of the RPi versions including CM. I still hope that one day we will get access to those pins on an new CM or revision. As those pins are additional to the GPIO banks.
SMI Linux drivers are available but the hardware itself isn't documented. A proof-of-concept that talks to NAND flash devices provides a skeleton framework for using the device. I believe Luke had high-speed digital data acquisition running with DMA in a hacky way, so this peripheral can certainly do 16-bit transfers at >25MHz.
I don't think that follows. Besides the cost issues, it is unclear that the original Pi could have handled SATA-II, let alone SATA-III. Come to that, I don't know of any cheap (<$50) SBCs that have SATA-III. There are some that have SATA-II, notably those based on the Alwinner A20 (dual A7 cores, typically at 1GHz). I'll grant you that even SATA-II on a 1GHz A20 runs pretty well (my read test on a SATA-II SSD hit 164MB/s, though the write speed was a rather more modest 44MB/s). I haven't--yet--been able to test the speed of an SSD connected to USB 3 (I'm waiting for the cables), but a PiDrive connected to an actual USB 3 port had an 80MB/s write speed, and a 73MB/s read speed, and those numbers are with a 4-core A9 1.1GHz CPU. To put those number in perspective, I have a SATA-III SSD attached (WD SATA Adapter) to a CM, which is the equivalent of an original Model B, runs at 26MB/s write and 25MB/s read. (I'm willing to share my test results, but I'd like to wait until I can include the tests with the USB3 to SATA cable and an SSD.)vision2000 wrote:IMHO the foundation have really boobed by not building in a solution for fast sata.
There are so many applications which require sata for which USB 3 is not a viable solution.
An add on board with at least two esata ports (and perhaps some buffer ram) would be the way to go with sata 3 the main target.
David
Thanks for those informations jdb.jdb wrote:
The host port is primarily a slave port. It requires external processor attention to read/write data to/from BCM2835. In theory you could use FPGA glue to come up with a bidirectional data path, but adding any sort of decent-speed FPGA puts 10s of dollars of cost on a board.
SMI Linux drivers are available but the hardware itself isn't documented. A proof-of-concept that talks to NAND flash devices provides a skeleton framework for using the device. I believe Luke had high-speed digital data acquisition running with DMA in a hacky way, so this peripheral can certainly do 16-bit transfers at >25MHz.
Yup, from the co-pro days, providing the interface to/from the host processor to the co-processor.adun wrote:So was the host port originally designed to let the BCM2835 act as a co-processor?
I dont know if some of the "undocumented" GPIO ALT functions refer to CCP2TX but I also doubt they are only available on the dedicated pins. Not on the GPIO banks.6by9 wrote:(Yes, the balls for the CCP2TX will be there somewhere under BCM283[5|6|7], but I very much doubt they'll ever be routed out, even on the Compute Module. I'm expecting that they're dedicated connections too, so no options for muxing them)
Code: Select all
V2: CCP2TX_AGND1 (connected to GND)
N5: CCP2TX_CN (floating)
P5: CCP2TX_CP (floating)
N6: CCP2TX_DN (floating)
P6: CCP2TX_DP (floating)
P8: CCP2TX_1V8 (connected to 1V8)
R13: CCP2TX_AGND2 (connected to GND)
R16: CCP2TX_AGND3 (connected to GND)
Not sure where you got the ball data from, but quite possibly.adun wrote:It looks like the ball pins for CCP2TX on BCM283X are:PS: So only 4 lanes would needed to be routed out. CCP2 could allow to have a third camera module attached..Code: Select all
V2: CCP2TX_AGND1 (connected to GND) N5: CCP2TX_CN (floating) P5: CCP2TX_CP (floating) N6: CCP2TX_DN (floating) P6: CCP2TX_DP (floating) P8: CCP2TX_1V8 (connected to 1V8) R13: CCP2TX_AGND2 (connected to GND) R16: CCP2TX_AGND3 (connected to GND)
My impression is that the USB3.0 and SATA interfaces are connected to the RPi via one of the USB2.0 ports on the RPi. That isn't going to get data in and out of the RPi any faster than using a USB port on the RPi for a USB device or a USB to SATA interface for SATA drives. And there will still be the bottleneck that all USB2.0, USB3.0, SATA and ethernet traffic is on the single USB2.0 port of the Broadcom SoC.Johnson-xu wrote:Hi, guys,
If any one who can confirm this boards some guys selling data? i means, i need somethings like that but i have no ideas about that.
https://www.aliexpress.com/store/produc ... 0.0.3FVxrE
Thanks any way.