Open briaeros opened 7 years ago
You need to change "rmii" to "mii" in package/himpp/himpp-hi3518v100/load3518.sh.
https://github.com/csolg/hi35xx-buildroot/commit/c1940db88650b59c6fa122099887aa4bba20e6dc
Thanks for the answer and the hint.
However, no luck there. I've change the load3518.sh, then as id didn't work, adding the CONFIG_HIETH_MII_RMII_MODE_U=0 CONFIG_HIETH_MII_RMII_MODE_D=0 to the linux-3.0 config (I've test with 1 also). But nothing seems to work.
The led is barely orange when buildroot is "on" (as if there are not enough power). On Uboot , it's brightly orange at start, then stay only green. And on the original firmware the two leds are brightly on.
I've dump the spi firmware and "binwalk" him, but I've no idea how find the "config" of the kernel (I don't think that's possible :( ).
@briaeros Can you see the chip name?
The phy chip is IP101GR (http://www.bdtic.com/DataSheet/ICplus/IP101G_DS_R01_20121224.pdf ), and the Hi chip is HI3518ERBCV10D. Someone else did make a good pdf of the module in question http://ve6sbs.sbszoo.com/projects/ipcam/53H13PE-S/53H13PE-S_Mods.pdf (I've check the reference of the chips and I've got the same). The pcb on mine module is too dark to know how the '4' pin (MII/RMII) of the IP101GR is connected.
Thanks for your help :)
Did you rebuild the kernel (with command make linux-rebuild)?
I use make clean && make -j 8 to compile "from scratch" each time. To be sure, I've (re-)cloned the git repo, add the two modification (the two lines on the linux-3.0 config and the modification on the loadhi3518.sh) . Then , after a make hi3518v100_defconfig; I've modified the config only on two way
Unfortunately , this doesn't change a thing :(
I've verified with an uname -a that I've got the last compiled kernel. "Linux hi35xx 3.0.8 #2 Mon Jan 2 23:20:10 UTC 2017 armv5tejl GNU/Linux"
I've copied the boot.txt if it could help. boot.txt
If you've got any idea to test, I'm more than interested :)
Do you have access to uboot? I need output of command printenv. Also output of command ifconfig (from linux console).
Hi,
I've attached multiples files. I've found that the origin firmware is in rmii (the boot launch ./load3518 -i ar0130 , and the "load3518" command is copied in load-firmware-origin.txt).
The uboot printenv is in uboot.txt, and I've run ifconfig on both firmware (buildroot and firmware origin, which works). I've add the kmsg of the origin firmware.
However, even if it's in rmii, it doesn't explain why it wouldn't work :'(
ifconfig-buildroot.txt ifconfig-firmware-origin.txt kmsg-firmware-origin.txt load-firmware-origin.txt uboot.txt
Did you set BR2_TARGET_UBOOT_BOARDNAME to hi3518e?
Hi,
I didn't, but I've done a new compile using this parameters to hi3518e (and modifying BR2_TARGET_UBOOT_HI35XX_IMAGE_CH_FILE to board/hisilicon/hi3518/boot/reg_info_hi3518e.bin).
Unfortunately , I tried to use the uboot generate with the command tftp 0x81000000 u-boot.bin then go 0x81000000 , but the network didn't work in the new uboot.
No more lucks with just the kernel and the original u-boot.
I think that my board is cursed :d If you've know a name of a cheap board that works well, I'm eager to know it :)
Hi, I have the same board. But I can access to the network from uboot and linux. Did you fix the problem? I bought a programmator for mx25l6406e. If you have a problem with the board loading.
Thank you for your patience.
I've tried to modify the default configuration of uboot, to get it directly working from ram (without the uboot-env partition). But even when I put all the information that are in uboot-env.txt, I can't make it work. So I'm not really confident to put it on flash ;) I've test with mii and rmii.
I tried to boot the new kernel from this uboot (loading it before), but without success. It didn't even take into account the uboot variable "sensor_type" and always try to launch the ov sensor. I pass the ${hieth} to kernel command line. Modifying mdioifu and mdioifd to 1 doesn't modified the apathy of the kernel.
I've got some stm32 laying somewhere, perhaps I could convert one to make a spi progammer, but I'm not too found to desolder the chips (and I'm sure to be good enough to
How did you make your firmware image ? Juste copy each binary to the right address on the flash, or do you make a complete image before pushing it to the flash ?
(on the new uboot, I've got this environnment bootargs=mem=32M console=ttyAMA0,115200 bootcmd=run autoboot bootdelay=5 baudrate=115200 ethaddr=00:00:23:34:45:66 ipaddr=192.168.1.13 serverip=192.168.1.19 preboot= netmask=255.255.255.0 bootfile="uImage" loadaddr=0x81000000 meminfo=mem=32M console=ttyAMA0,115200n8 mtdparts=hi_sfc:256k(uboot)ro,128k(uboot-env),128k(mfd),1536k(kernel),4m(rootfs),-(user) commonargs=setenv bootargs ${meminfo} console=${console} mtdparts=${mtdparts} flashboot=echo Booting from SPI Flash...; run commonargs; sf probe 0 && sf read ${loadaddr} 0x80000 0x180000 && bootm serialboot=echo Booting from y-modem...; run commonargs; loady && bootm autoboot=if run flashboot; then; else run serialboot; fi sensor_type=ar0130 mdio_intf=mii phyaddru=1 phyaddrd=2 netdev=eth0 nfsopts=hard,tcp,vers=3 hieth=hieth.mdioifu=0 hieth.mdioifd=0 hieth.phyaddru=1 hieth.phyaddrd=2 mtdparts=hi_sfc:512k(uboot)ro,256k(uboot-env),256k(mfd),2m(kernel),5m(rootfs),-(user) commonargs=setenv bootargs ${meminfo} panic=10 console=${console} mtdparts=${mtdparts} ${hieth} bootargsorig=mem=39M console=ttyAMA0,115200n8 root=/dev/mtdblock1 rootfstype=cramfs mtdparts=hi_sfc:256K(boot),3520K(romfs),2560K(user),1280K(web),256K(cus),320K(mt) orig=setenv setargs setenv bootargs ${bootargsorig};run setargs;fload;bootm 0x82000000 myboot=setenv bootargs ${commonargs} && tftp 0x82000000 cam/uImage && bootm 0x82000000 HWID=8043420004748432 NID=0x0012 muxctl0= muxval0= gpio0= gpioval0= stdin=serial stdout=serial stderr=serial verify=n ver=U-Boot 2010.06-dirty (Jan 12 2017 - 00:05:51) )
has anyone figured this out. I have same problem on a hi3518e juan board. have linux, uboot, running pretty goo finally after trashing 2 boards and now unsoldering spi chip 8 times. now im pretty good at it... LOL
my board has full network connectivity in uboot, but no in Linux. let me know if anything is wrong with it!
here is is the current fw_print:
bootcmd=run autoboot baudrate=115200 ethaddr=00:00:23:34:45:66 preboot= loadaddr=0x81000000 serialboot=echo Booting from y-modem...; run commonargs; loady && bootm meminfo=mem=40m console=ttyAMA0,115200 flashroot=/dev/mtdblock4 bootfile=hi3518/uImage sensor_type=ar0130 init=/init hieth=hieth.mdioifu=0 hieth.mdioifd=0 hieth.phyaddru=1 hieth.phyaddrd=2 flashoverlay=/dev/mtdblock5 flashoverlayfstype=jffs2 commonargs=setenv bootargs ${meminfo} console=${console} mtdparts=${mtdparts} ${hieth} init=${init} addip=setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off nfsargs=run commonargs; setenv bootargs ${bootargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} nfsboot=echo Booting from NFS...; run nfsargs; run addip; tftp ${loadaddr} ${bootfile} && bootm ${loadaddr} flashargs=run commonargs; setenv bootargs ${bootargs} root=${flashroot} overlay=${overlay} rootfstype=${flashrootfstype} overlay=${flashoverlay} overlayfstype=${flashoverlayfstype} filesize=3B5000 fileaddr=81000000 netmask=255.255.255.0 ipaddr=192.168.1.10 serverip=192.168.1.107 mtdparts=hi_sfc:256k(uboot)ro,128k(uboot-env),128k(mfd),2m(kernel),5m(rootfs),-(user) ramdisk=4096 bootdelay=3 bootargs=mem=40m console=ttyAMA0,115200 mtdparts=hi_sfc:256k(uboot)ro,128k(uboot-env),128k(mfd),2m(kernel),5m(rootfs),-(user) ramdisk=4096 hieth.mdioifu=0 hieth.mdioifd=0 hieth.phyaddru=1 hieth.phyaddrd=2 init=/init root=/dev/mtdblock4 overlay= rootfstype=squashfs overlay=/dev/mtdblock5 overlayfstype=jffs2 autoboot=if run flashboot; then; else run nfsboot; fi stdin=serial stdout=serial stderr=serial verify=n ver=U-Boot 2010.06 (Jul 02 2017 - 03:46:51) flashboot=echo Booting from SPI Flash...; run flashargs; sf probe 0 && sf read ${loadaddr} 0x80000 0x200000 && bootm phyaddru=1 phyaddrd=2 netdev=eth0 nfsopts=hard,tcp,vers=3 NID=0x0012 HWID=8043420004748432 mdio_intf=mii flashrootfstype=squashfs,jffs2 rootpath=/srv/tftp/hi3518/
looks like I have a problem loading some modules. Ill repair and report if it fixes problem. I can ping only the interface ip on eth0. nothing else works.
hi3518_base: module license 'Proprietary' taints kernel. Disabling lock debugging due to kernel taint Hisilicon UMAP device driver interface: v3.00 pa:82800000, va:c31c0000 load sys.ko ...OK! load viu.ko ...OK! ISP Mod init! load vpss.ko ....OK! load venc.ko ...OK! load group.ko ...OK! load chnl.ko ...OK! load h264e.ko ...OK! load jpege.ko ...OK! load rc.ko ...OK! load region.ko ....OK! load vda.ko ....OK! hi_i2c: version magic '3.0.8dsw.BR3 mod_unload ARMv5 ' should be '3.0.8 mod_unload ARMv5 ' insmod: can't insert 'extdrv/hi_i2c.ko': invalid module format pwm: version magic '3.0.8dsw.BR3 mod_unload ARMv5 ' should be '3.0.8 mod_unload ARMv5 ' insmod: can't insert 'extdrv/pwm.ko': invalid module format ssp_ad9020: version magic '3.0.8dsw.BR3 mod_unload ARMv5 ' should be '3.0.8 mod_unload ARMv5 ' insmod: can't insert 'extdrv/ssp_ad9020.ko': invalid module format acodec inited! insert audio ==== Your input Sensor type is ar0130 ==== OK Starting system message bus: done Starting network: ADDRCONF(NETDEV_UP): eth0: link is not ready OK Starting live-streamer: OK
Welcome to hi35xx-buildroot hi3518e login: PHY: himii:01 - Link is Up - 100/Full ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
.config - Linux/arm 3.0.8 Kernel Configuration
────────────────────────────────────────────────────────────────────────────────────────────────────────────────
┌─────────────────────────── hieth(switch fabric) family network device support ────────────────────────────┐
│ Arrow keys navigate the menu.
│ Pressing
│ </> for Search. Legend: [] built-in [ ] excluded
│ │
│ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ --- hieth(switch fabric) family network device support │ │
│ │ (0x726d6d73) hieth tag │ │
│ │ (0x10090000) hieth IO address │ │
│ │ (0x00010000) hieth IO size │ │
│ │ (12) hieth irq number │ │
│ │ [ ] eee support │ │
│ │ (10) hieth monitor timer │ │
│ │ (12) hieth hardware queue send fifo depth │ │
│ │ (2) hieth mdio frequency factor │ │
│ │ (0) hieth mii/rmii mode for up port (mii:0/rmii:1) │ │
│ │ (0) hieth mii/rmii mode for down port (mii:0/rmii:1) │ │
│ │ (1) hieth phyid for up port │ │
│ │ (2) hieth phyid for down port │ │
│ │ [ ] enable hieth down port │ │
│ │ (1024) hieth max rx pool size │ │
│ │ (18) hieth trace(debug) level │ │
│ │ [
│ │ (0x20140000) hieth reset helper on which gpio group │ │
│ │ (5) hieth reset helper on gpio bit │ │
│ │ (0) hieth reset helper on gpio value │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│
my board has microchip ethernet controller is ksz8081mnx. had it working after screwng around for 2 hours.i dont know what i did however !@.
tested with mii-test in linux and all shows good.
here is u-boot mii dump, eth0 = no such device
ipcam # mii device eth0:1 No such device: eth0:1 ipcam # mii device eth1:2 ipcam # mii dump
Got mine fixed after 5 hours of testing and retesting. playing with u-boot scripts. Here is the final linux cmdline that works:
cat /proc/cmdline mem=40m console=ttyAMA0,115200 mtdparts=hi_sfc:256k(uboot)ro,128k(uboot-env),128k(mfd),2m(kernel),5m(rootfs),-(user) ramdisk=4096 hieth.mdioifu=0 hieth.mdioifd=0 hieth.phyaddru=1 hieth.phyaddrd=2 init=/init root=/dev/mtdblock4 rootfstype=squashfs,jffs2 overlay=/dev/mtdblock5 overlayfstype=jffs2 ip=192.168.1.10:192.168.1.107:192.168.1.107:255.255.255.0:ipcam:eth1:off
Hello,
I'm really sorry for the delay and I want to thanks you for your persistence and coming back once it's works ;) I will test as soon as I got the camera back (but I will wait at least one month since the one who got it is on holliday). I don't remember having done many test with static configuration, perhaps something play there ?
Hi @briaeros,
I also had a problem getting the Ethernet working and believe I was having the same problem as you. Particularly when you described:
"The led is barely orange when buildroot is "on" (as if there are not enough power). On Uboot , it's brightly orange at start, then stay only green. And on the original firmware the two leds are brightly on."
I tried changing the CONFIG_HIETH_MII_RMII_MODE_U and CONFIG_HIETH_MII_RMII_MODE_D options to 1 (RMII) but this didn't get the Ethernet working.
In the end I needed to also edit the net_rmii_mode function in the pinmux_hi3518.sh startup script, which was incorrectly setting the muxctrl_reg28 register to the wrong function (EPHY_CLK instead of GPIO1_3).
I've made these changes in a fork of hi35xx-buildroot, see: https://github.com/mark4h/hi35xx-buildroot/commit/1431cc6b475d7260bb3a1cafcb820d6528dd15d1#diff-084575f2e251e68e0dec60679d6760b3
I've also writen a longer description of diagnosing the problem in a blog post, see:
http://mark4h.blogspot.co.uk/2017/08/hi3518-camera-module-part-2-getting.html
Hope this helps, mark4h
ive had good luck booting from nor flash and sdcard, but unable to get parameters right for nfs root file system boot.
any ideas?
what is rtsp connection url for live-streamer???
any ideas on setting ethernet connector to jtag. if i understand the mux usage it can be set for jtag usage, but dont understand source code well enough to figure out.
@mark4h Your branch correct my trouble , and now I've got the network. (I didn't found yet which rtsp url I could use with live-streamer, but that's another story).
Your blog post is very informative. I don't think I would've found theses register.
Thanks a lot for your investigation and correction.
Do you plan to do a push request ?
(ps , I didn't see any rss on your blog to see what you would do with your camera ;) )
@49handyman Hello,
Concerning the nfs : if you boot with an image "standalone" (flash, initrd, ...) , do you have access to the network in it ? If yes, what is the kernel command line you want to use to boot on nfs ?
For the jtag, I'm not sure you can mux it directly other the ethernet phy. Nothing seems to indicate this on the datasheet of my ethernet phy or the hi3518.
For the live-streamer url , I'm searching the same information :).
@mark4h thanks. i was getting hieth:hieth_net_timeout:461:
and tx timeout
on my hi3518ev100 board. i think the oem is siepem and the camera was sold as a "spigen e300w".
i just copy+pasted the devmem commands from the net_mii_mode()
function without rebooting and the network miraculously came to life :)
looking at the oem firmware, there is a file /komod/pinmux_hi3518.sh
which also has a function called net_mii_mode()
that basically does the same thing, but uses the himm
utility from the hisilicon sdk instead of devmem
.
i'll probably end up just converting those scripts to use devmem
instead of himm
(which kind of seems like you have done in your fork).
p.s. here are several hi3518 sdk .zip's including ones as recent as end of 2015: https://app.box.com/s/cibs7n1mgvhqaqjlidtveegu1uajt5yr/folder/18989615567
i used 7z to extract the multi-part zip files.
Can I get RTSP destination URL from live-streamer started on HI3518EV1 cam with ov9712 sensor ?
AutoReply
You can get RTSP traffic from IPCam - rtsp://you_device_ip:554/0 or rtsp://you_device_ip:554/1
Good afternoon !
I have a question about the use of an internal/external Ethernet PHY.
If I use an internal Hisilicon PHY then I must set it in the kernel settings: CONFIG_HIETH_PHYID_U=0 CONFIG_HIETH_PHYID_D=1
If I use an external PHY RTL8201 or IP101 then I must set it in the kernel settings: CONFIG_HIETH_PHYID_U=1 CONFIG_HIETH_PHYID_D=2
If I rebuild the kernel for each system, everything works fine.
I'm wondering, is there a way to switch PHY directly from the Linux console via devmem/himm ?
Thanks for any answers
Look patch https://github.com/OpenIPC/firmware/tree/master/br-ext-chip-hisilicon/board/hi3516cv100/kernel/patches 22_hieth_port.patch and hieth_autoprobe.patch
Hi,
I've got an 53H13PE board, with a Hi3518e and an aptina and I'm trying to use your buildroot on it.
However, the driver hieth seems to be a little upset with it, since it give me an interface (eth0) wich emits and receives absolutely no packet. I can assign it an ip address, but whatever I do, no packet are sended nor received (check by tcpdump on the board, or on my network). The on-board firmware works well on this aspect.
I've used the linux 3.0 version, since with the 3.4 I don't have any serial console (and no network). I've tried to modify the RMIIMODE{U,D} and the PHYID_{U,D} in the linux config, to no avail.
Have you got this problem , and/or do you have an idea where to look at to investigate ?
Do you know any "cheap" board that is compatible with this buildroot (it could be easier to just switch the board :))
Cordially
Ps : on the on-board firmware, I've got theses informations, but I don't know what to do with
From boot :
from some other conf file
from the directory /sys/devices/platform/hieth.0/net/eth0