1

Temat: Kamera na GM8136 - boot z MMC

Mam kamerę opartą na procesorze GM8136 z WiFi.
Zastanawiam się czy jest możliwe odpalenie systemu z karty SD (MMC) z poziomu uboot'a.

Polecenia uboot'a i zmienne:

GM # help
?       - alias for 'help'
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootlogo- show lcd bootlogo
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
chpart  - change active partition
cmp     - memory compare
cp      - memory copy
crc32   - checksum calculation
dcache  - enable or disable data cache
env     - environment handling commands
erase   - erase FLASH memory
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
flinfo  - print FLASH memory information
fwupd   - firmware upgrade from usb device for specified filename
go      - start application at address 'addr'
help    - print command description/usage
i2c     - I2C sub-system
icache  - enable or disable instruction cache
l2cache_test- Perform test of L2 cache
md      - memory display
memtester- memory tester
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mmc     - MMC sub system
mmcinfo - display MMC info
mtdparts- define flash/nand partitions
mtest   - simple RAM read/write test
mw      - memory write (fill)
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sf      - SPI flash sub-system
sspi    - SPI utility command
tftpboot- boot image via network using TFTP protocol
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version
GM # printenv
auimg0=u-boot_spi.bin
auimg1=uImage_8136
auimg2=rootfs-cpio_8136.squashfs.img
auimg3=mtd.img
auimgaio=flash.img
auimgbot=nsboot.bin
autoupdate=no
baudrate=115200
bootcmd=sf probe 0:0;run lm;bootm 0x2000000
bootdelay=3
cmd1=mem=64M gmmem=30M console=ttyS0,115200 user_debug=31 init=/squashfs_init root=/dev/mtdblock2 rootfstype=squashfs
cmd2=mem=128M gmmem=90M console=ttyS0,115200 user_debug=31 init=/squashfs_init root=/dev/mtdblock2 rootfstype=squashfs
cmd3=mem=256M gmmem=190M console=ttyS0,115200 user_debug=31 init=/squashfs_init root=/dev/mtdblock2 rootfstype=squashfs
cmd4=mem=512M gmmem=432M console=ttyS0,115200 user_debug=31 init=/squashfs_init root=/dev/mtdblock2 rootfstype=squashfs
ethact=eth0
ethaddr=00:42:70:00:30:22
gatewayip=10.0.1.51
ipaddr=10.0.1.52
lm=sf read 0x02000000 z
netmask=255.0.0.0
serverip=10.0.1.51
stderr=serial
stdin=serial
stdout=serial
verify=no

Environment size: 933/65532 bytes
GM # help mmc
mmc - MMC sub system

Usage:
mmc read addr blk# cnt
mmc write addr blk# cnt
mmc erase blk# cnt
mmc rescan
mmc part - lists available partition on current mmc device
mmc dev [dev] [part] - show or set current mmc device [partition]
mmc list - lists available devices

Po odpaleniu mmc 0 widać partycje:

GM # mmc part

Partition Map for MMC device 0  --   Partition Type: DOS

Part    Start Sector    Num Sectors    UUID        Type
  1    2048          1927168       a562df25-01    0c
GM # mmcinfo
Device: FTSDC021
Manufacturer ID: 3
OEM: 5344
Name: SU01G 
Tran Speed: 25000000
Rd Block Len: 512
SD version 2.0
High Capacity: No
Capacity: 942.5 MiB
Bus Width: 4-bit

Bootcmd wygląda tak:

sf probe 0:0;sf read 0x02000000 z;bootm 0x2000000

2

Odp: Kamera na GM8136 - boot z MMC

fatload jest, więc możesz załadować kernel z karty i uruchomić.

mmc rescan
fatload mmc 0 0x02000000 z
bootm 0x2000000

Przynajmniej tak było np. dla zyxela.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Kamera na GM8136 - boot z MMC

Żeby tak zrobić to na kartę musi być wrzucony dump z SPI?
Układ partycji tak wygląda:

# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00050000 00010000 "UBOOT"
mtd1: 002a0000 00010000 "KERNEL"
mtd2: 00a00000 00010000 "ROOTFS"
mtd3: 002e0000 00010000 "DATA"
mtd4: 00010000 00010000 "CONFIG"
mtd5: 00010000 00010000 "FACTORY"
mtd6: 01000000 00010000 "ALL"

4

Odp: Kamera na GM8136 - boot z MMC

dd if=/dev/mtd1 of=/tmp/mtd1

i przegraj sobie /tmp/mtd1 na kartę.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Kamera na GM8136 - boot z MMC

Tak chyba nie zadziała:

GM # fatload mmc 0 0x02000000 z
** Unrecognized filesystem type **

6

Odp: Kamera na GM8136 - boot z MMC

Jaki system masz na karcie? zrób mmc list / mmc part

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7 (edytowany przez frutis 2023-03-06 21:40:12)

Odp: Kamera na GM8136 - boot z MMC

Ale w jaki sposób to przegrać? Bo ja zrobiłem

dd if=mtd1.bak of=/dev/sdX

8

Odp: Kamera na GM8136 - boot z MMC

Zamontuj kartę i przegraj przez cp.

Jak tak zrobiłeś to nagrałeś kernel na kartę a nie jako plik w systemie plików. Teraz weź ją wyjmij i przeformatuj znów w czytniku.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Kamera na GM8136 - boot z MMC

Dzięki, teraz już poszło. Nie wiedziałem, że z to nazwa pliku smile Co oznacza z w przypadku SPI?

10

Odp: Kamera na GM8136 - boot z MMC

dobre pytanie smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11 (edytowany przez frutis 2023-03-06 22:19:01)

Odp: Kamera na GM8136 - boot z MMC

Czy jest możliwe zamontowanie root'a (squashfs) z mmc ładując kernel z mmc?
Ale to pewnie musiał by być specjalnie kernel przygotowany.

Przy starcie jest użyta ta zmienna:

cmd2=mem=128M gmmem=90M console=ttyS0,115200 user_debug=31 init=/squashfs_init root=/dev/mtdblock2 rootfstype=squashfs

Może po jej zmodyfikowaniu by poszło...

12

Odp: Kamera na GM8136 - boot z MMC

Zobacz  ze tam w cmd masz gdzie jest root. Ale tak, kernel musi to obsługiwać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13 (edytowany przez frutis 2023-03-06 23:34:29)

Odp: Kamera na GM8136 - boot z MMC

Raczej nic z tego nie będzie:

sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
mmc0: SDHCI controller on ftsdc021.0 [ftsdc021.0] using ADMA
sdhci-pltfm: SDHCI platform and OF driver helper
TCP cubic registered
NET: Registered protocol family 10
NET: Registered protocol family 17
Root-NFS: no NFS server address
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "mmcblk0p2" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00             320 mtdblock0  (driver?)
1f01            2688 mtdblock1  (driver?)
1f02           10240 mtdblock2  (driver?)
1f03            2944 mtdblock3  (driver?)
1f04              64 mtdblock4  (driver?)
1f05              64 mtdblock5  (driver?)
1f06           16384 mtdblock6  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

Na karcie zrobiłem dwie partycje. Na drugą wrzuciłem squashfs przez dd.

Edit:
Udało się po dodaniu opcji rootwait.

14

Odp: Kamera na GM8136 - boot z MMC

Czy jest coś podobnego wspieranego w OpenWrt?

cat /proc/cpuinfo
Processor    : FA6 rev 3 (v5l)
BogoMIPS    : 858.52
Features    : swp half
CPU implementer    : 0x66
CPU architecture: 5TE
CPU variant    : 0x0
CPU part    : 0x626
CPU revision    : 3

Hardware    : Grain-Media GM8136 series
Revision    : 0000
Serial        : 0000000000000000

15

Odp: Kamera na GM8136 - boot z MMC

Chyba nie. Gemini ma coś w podobie (Processor : FA526id(wb)) ale nie wiem jak się to ma do FA6.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16

Odp: Kamera na GM8136 - boot z MMC

Problem jest taki, że w SDK jest kernel 3.3, a wsparcie dla radia jest od wersji kernela 5.1 smile
Są użyte jakieś zamknięte sterowniki od NXP.

17

Odp: Kamera na GM8136 - boot z MMC

Jak w większości SDK, producent daje wiele zamkniętego softu i tyle.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18

Odp: Kamera na GM8136 - boot z MMC

Znalazłem taki opis budowania: https://github.com/StreamUnlimited/marv … ME_OPENWRT
Ale to i tak pewnie trzeba NDA podpisać, żeby mieć źródła.

19

Odp: Kamera na GM8136 - boot z MMC

No właśnie tam masz źródła...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

20

Odp: Kamera na GM8136 - boot z MMC

NXP też coś tam udostępnia na githubie: https://github.com/NXP/wifi_nxp

21

Odp: Kamera na GM8136 - boot z MMC

Czy da się w jakiś sposób sprawdzić czy karta WiFi na SDIO 3.0 jest widoczna w systemie zanim załaduje się sterowniki (karta SD działa)?

22

Odp: Kamera na GM8136 - boot z MMC

Nie wiem czy jest coś takiego. Może jakieś narzędzie z pakietu mmc-utils coś pokaże.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

23

Odp: Kamera na GM8136 - boot z MMC

Chyba jednak musi być odpowiednio system przygotowany: https://community.silabs.com/s/article/ … uage=en_US