Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
inbox:toh:sagem:f_st3864op [2024/02/20 16:41] – [LEDs and buttons] rikka0w0inbox:toh:sagem:f_st3864op [2024/10/19 06:51] – [Photos] rikka0w0
Line 176: Line 176:
   * [[https://au.mouser.com/datasheet/2/472/Si32260_61-2507288.pdf|SI32260-C-FM1]]   * [[https://au.mouser.com/datasheet/2/472/Si32260_61-2507288.pdf|SI32260-C-FM1]]
   * [[https://www.digikey.co.uk/en/products/detail/broadcom-limited/BCM6302KMLG/6147288|BCM6302]]   * [[https://www.digikey.co.uk/en/products/detail/broadcom-limited/BCM6302KMLG/6147288|BCM6302]]
 +
 +CPU Pinout:
 +[[:docs:techref:hardware:soc:soc.broadcom.bcm63xx#bcm63168_pinout]]
  
 ==== Network ==== ==== Network ====
Line 203: Line 206:
 ^ Voltage | 3.3V TTL| ^ Voltage | 3.3V TTL|
  
-===== Flash Layout =====+==== LEDs and buttons ==== 
 +There are three types of LEDs on this device: 
 +  - Connected to a serial LED driver which then drives up to 8 LEDs via a 74HC164D. 
 +  - Connected to a SoC pin and controlled by a hardware LED control register. 
 +  - Connected to a SoC pin and controlled by Linux via gpio-leds.
  
 +LED and Button connections:
 +  * WAN Port: Yellow(460+6, gpio38), Green(460+7, gpio39)
 +  * WLAN Led (D12): (460+4, gpio36) Logic XOR (460+5, gpio37), this is weird!
 +  * Internet Led (D17): Green(480+8, gpio8), Red(74HC164D@Q2)
 +  * DSL Bonding Led (D17): Green(480+9, gpio9)
 +  * Power Led (D15): Green(480+20, gpio20), Red(480+15, gpio15)
 +  * DSL (D7): Green(74HC164D@Q3)
 +  * FXS (D11, Foreign Exchange Station, the phone ports, not to be confused with the xDSL port): Green(74HC164D@Q4), Red(74HC164D@Q5)
 +  * WPS Led (D13): Green(74HC164D@Q0), Red(74HC164D@Q1)
 +  * Reset button (SW5): (460+0, gpio32)
 +  * WPS button (SW3): (460+1, gpio33)
 +  * WLAN button (SW2): (460+2, gpio34)
 +  * Some LEDs are driven by 74HC164D:
 +  * Clock (CP) = gpio0 (/sys/class/gpio/gpio480), serial_led_clk
 +  * DSA (Data input) = gpio1 (/sys/class/gpio/gpio481), serial_led_data
 +  * DSB (AND with DSA), MR(Output Async Reset) are pulled high.
 +
 +===== Flash Layout =====
 +Stock firmware dump:
 +https://github.com/rikka0w0/fast3864op-hacks
 ==== Stock ==== ==== Stock ====
 From OEM Bootlog: From OEM Bootlog:
Line 221: Line 248:
 ^  F@ST3864OP Flash Layout                                                                                                                                                                                                                                                               ||||||| ^  F@ST3864OP Flash Layout                                                                                                                                                                                                                                                               |||||||
 ^ Hardware                      128MiB NAND W29N01HVSINA                                                                                                                                                                                                                                |||||| ^ Hardware                      128MiB NAND W29N01HVSINA                                                                                                                                                                                                                                ||||||
-^ Stock Label                  |  **//nvram//**              |  **//rootfs//** jffs2 filesystem                                                                |  **//rootfs_update//** empty jffs2  |  **//hidden1//**              **//data//**             |  **//hidden2//**             |+^ Stock Label                  |  **//nvram//**              |  **//rootfs//** jffs2 filesystem                                                                |  **//rootfs_update//** empty jffs2  |  **//hidden1//**              **//data//** jffs2 filesystem      |  **//hidden2//**             |
 ^ Stock mtd device name        |  mtd3                        mtd0 (mtd4)                                                                                    |  mtd1 (mtd5)                        |  -                            mtd2                      -                           | ^ Stock mtd device name        |  mtd3                        mtd0 (mtd4)                                                                                    |  mtd1 (mtd5)                        |  -                            mtd2                      -                           |
 | Start                        |  0x0000000                  |  0x0020000                                                                                      |  0x3D80000                          |  0x7AE0000                   | 0x7B00000                 | 0x7F00000                    | | Start                        |  0x0000000                  |  0x0020000                                                                                      |  0x3D80000                          |  0x7AE0000                   | 0x7B00000                 | 0x7F00000                    |
Line 253: Line 280:
 </code> </code>
 ==== Photos ==== ==== Photos ====
-/* =====>>>>> Standard size for photosadd ?400 to the medialink                                */ +=== PCB ==
-/* When uploading photos, **name them** intelligently. Nobody knows what 20100930_000602.jpg is! */ +{{:media:sagem:sagem_f_st3864_front_pcb.jpg?400|}} 
-/* e.g. {{:media:yourbrand:yourbrand_yourmodel_front.jpg?400|}}                                  */ +{{:media:sagem:sagem_f_st3864_back_pcb.jpg?400|}} 
-/* Thanks, your wiki administration - Oct. 2015 */+==== Opening the case ====
  
-**Insert photo of front of the casing**+<WRAP BOX> 
 +FIXME //Describe what needs to be done to open the device, e.g. remove rubber feet, adhesive labels, screws, ...// 
 +</WRAP>
  
-**Insert photo of back of the casing** 
  
-**Insert photo of backside label** 
  
-**Insert photo of PCB** 
  
-==== Opening the case ==== 
  
-<WRAP BOX> +===== Hardware Mods ===== 
-FIXME //Describe what needs to be done to open the device, e.g. remove rubber feet, adhesive labels, screws, ...// +This may apply: 
-</WRAP>+[[:toh:sercomm:ad1018]]
  
 +==== Spare SPI Flash ====
  
 +There's an unsoldered SPI Flash (SOIC16) on the bottom of the board that connects to ''HSSPI.CS0''. It is known that a SOIC8 Winbond "W25Q64" soldered with jumper wires works with ''spidev'' driver. Custom firmware compilation is required with the following appended to the dts:
 +<WRAP bootlog><nowiki>&hsspi {
 + status = "okay";
  
 + mydev@0{
 + compatible = "rohm,dh2228fv";
 + reg = <0>;
 + spi-max-frequency = <781000>;
 + };
 +};</nowiki></WRAP>
 +To use the ''spidev'' driver in the latest kernel (6.6 as of Sep 19, 2024), one has to use a specific device name ("rohm,dh2228fv" in this case), the old "linux, spidev" no longer works. Not sure if it is a kernel bug or not.
 +
 +The SPI Flash can be accessed with ''flashrom-spi'' and ''spi-tools'' (available in the OpenWRT opkg repo):
 +
 +<WRAP bootlog><nowiki>root@OpenWrt:/# flashrom-spi -p linux_spi:dev=/dev/spidev1.0
 +flashrom v1.2 on Linux 5.4.188 (mips)
 +flashrom is free software, get the source code at https://flashrom.org
 +
 +Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
 +Using default 2000kHz clock. Use 'spispeed' parameter to override.
 +Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) on linux_spi.
 +No operations were specified.
 +
 +root@OpenWrt:/# echo -n -e \\x9F\\xFF\\xFF\\xFF | spi-pipe -d /dev/spidev1.0 -b4 -n1 | hexdump -C
 +00000000  ff ef 40 17                                       |..@.|
 +00000004</nowiki></WRAP>
  
 ==== PCIe ==== ==== PCIe ====
Line 404: Line 455:
  
  
-===== Hardware Mods ===== 
-This may apply: 
-[[:toh:sercomm:ad1018]] 
- 
-CPU Pinout: 
-[[:docs:techref:hardware:soc:soc.broadcom.bcm63xx]] 
- 
-==== Spare SPI Flash ==== 
- 
-There's an unsoldered SPI Flash (SOIC16) on the bottom of the board that connects to ''HSSPI.CS0''. It is known that an SOIC8 Winbond "W25Q64" soldered with jumper wires works with ''spidev'' driver. The SPI Flash can be accessed with ''flashrom-spi'' and ''spi-tools'' (available in the OpenWRT opkg repo): 
- 
-<WRAP bootlog><nowiki>root@OpenWrt:/# flashrom-spi -p linux_spi:dev=/dev/spidev1.0 
-flashrom v1.2 on Linux 5.4.188 (mips) 
-flashrom is free software, get the source code at https://flashrom.org 
- 
-Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns). 
-Using default 2000kHz clock. Use 'spispeed' parameter to override. 
-Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) on linux_spi. 
-No operations were specified. 
- 
-root@OpenWrt:/# echo -n -e \\x9F\\xFF\\xFF\\xFF | spi-pipe -d /dev/spidev1.0 -b4 -n1 | hexdump -C 
-00000000  ff ef 40 17                                       |..@.| 
-00000004</nowiki></WRAP> 
 ===== Bootlogs ===== ===== Bootlogs =====
 ==== OEM bootlog ==== ==== OEM bootlog ====
Line 1408: Line 1436:
 Source code: Source code:
  
-https://github.com/rikka0w0/openwrt-fast3864op/tree/fast3864_master_20240213+https://github.com/rikka0w0/openwrt-fast3864op/tree/fast3864_master_20240315
  
 Before the cferam.000 is merged into ''https://github.com/openwrt/bcm63xx-cfe.git'', we need to supply our cferam.000 manually: Before the cferam.000 is merged into ''https://github.com/openwrt/bcm63xx-cfe.git'', we need to supply our cferam.000 manually:
  • Last modified: 2024/10/19 06:56
  • by rikka0w0