Giter Site home page Giter Site logo

Comments (29)

mark4h avatar mark4h commented on July 17, 2024 4

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:
mark4h@1431cc6#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

from hi35xx-buildroot.

49handyman avatar 49handyman commented on July 17, 2024 3

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

from hi35xx-buildroot.

csolg avatar csolg commented on July 17, 2024

You need to change "rmii" to "mii" in package/himpp/himpp-hi3518v100/load3518.sh.

csolg@c1940db

from hi35xx-buildroot.

briaeros avatar briaeros commented on July 17, 2024

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 :( ).

from hi35xx-buildroot.

csolg avatar csolg commented on July 17, 2024

@briaeros Can you see the chip name?

from hi35xx-buildroot.

briaeros avatar briaeros commented on July 17, 2024

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 :)

from hi35xx-buildroot.

csolg avatar csolg commented on July 17, 2024

Did you rebuild the kernel (with command make linux-rebuild)?

from hi35xx-buildroot.

briaeros avatar briaeros commented on July 17, 2024

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

  • adding tcpdump
  • putting the rootfs in the initramfs (BR2_TARGET_ROOTFS_INITRAMFS=y) (for me, that's the most simple way of loading and testing a new firmware).

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 :)

from hi35xx-buildroot.

csolg avatar csolg commented on July 17, 2024

Do you have access to uboot? I need output of command printenv. Also output of command ifconfig (from linux console).

from hi35xx-buildroot.

briaeros avatar briaeros commented on July 17, 2024

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

from hi35xx-buildroot.

csolg avatar csolg commented on July 17, 2024

Did you set BR2_TARGET_UBOOT_BOARDNAME to hi3518e?

from hi35xx-buildroot.

briaeros avatar briaeros commented on July 17, 2024

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 :)

from hi35xx-buildroot.

csolg avatar csolg commented on July 17, 2024

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.

from hi35xx-buildroot.

briaeros avatar briaeros commented on July 17, 2024

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)
)

from hi35xx-buildroot.

49handyman avatar 49handyman commented on July 17, 2024

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

from hi35xx-buildroot.

49handyman avatar 49handyman commented on July 17, 2024

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:

fw_printenv

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/

from hi35xx-buildroot.

49handyman avatar 49handyman commented on July 17, 2024

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

from hi35xx-buildroot.

49handyman avatar 49handyman commented on July 17, 2024

.config - Linux/arm 3.0.8 Kernel Configuration
────────────────────────────────────────────────────────────────────────────────────────────────────────────────
┌─────────────────────────── hieth(switch fabric) family network device support ────────────────────────────┐
│ Arrow keys navigate the menu. selects submenus --->. Highlighted letters are hotkeys. │
│ Pressing includes, excludes, modularizes features. Press to exit, <?> for Help, │
│ </> for Search. Legend: [] built-in [ ] excluded module < > module capable │
│ │
│ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ --- 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 │ │
│ │ [
] hieth reset helper │ │
│ │ (0x20140000) hieth reset helper on which gpio group │ │
│ │ (5) hieth reset helper on gpio bit │ │
│ │ (0) hieth reset helper on gpio value │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ < Exit > < Help > │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────

from hi35xx-buildroot.

49handyman avatar 49handyman commented on July 17, 2024

my board has microchip ethernet controller is ksz8081mnx. had it working after screwng around for 2 hours.i dont know what i did however !@.

from hi35xx-buildroot.

49handyman avatar 49handyman commented on July 17, 2024

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
0. (ffff) -- PHY control register --
(8000:8000) 0.15 = 1 reset
(4000:4000) 0.14 = 1 loopback
(2040:2040) 0. 6,13 = b11 speed selection = ??? Mbps
(1000:1000) 0.12 = 1 A/N enable
(0800:0800) 0.11 = 1 power-down
(0400:0400) 0.10 = 1 isolate
(0200:0200) 0. 9 = 1 restart A/N
(0100:0100) 0. 8 = 1 duplex = full
(0080:0080) 0. 7 = 1 collision test enable
(003f:003f) 0. 5- 0 = 63 (reserved)

from hi35xx-buildroot.

briaeros avatar briaeros commented on July 17, 2024

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 ?

from hi35xx-buildroot.

49handyman avatar 49handyman commented on July 17, 2024

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???

from hi35xx-buildroot.

49handyman avatar 49handyman commented on July 17, 2024

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.

from hi35xx-buildroot.

briaeros avatar briaeros commented on July 17, 2024

@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 ;) )

from hi35xx-buildroot.

briaeros avatar briaeros commented on July 17, 2024

@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 :).

from hi35xx-buildroot.

tofurky avatar tofurky commented on July 17, 2024

@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.

from hi35xx-buildroot.

ZigFisher avatar ZigFisher commented on July 17, 2024

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

from hi35xx-buildroot.

ZigFisher avatar ZigFisher commented on July 17, 2024

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

from hi35xx-buildroot.

straga avatar straga commented on July 17, 2024

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

from hi35xx-buildroot.

Related Issues (14)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.