Re: foc_odroid_x2 with tftp boot via uboot on odroid u3
Hello Genode community, thank you for all the suggestions we received in the correspondence. In the end, we were able to boot our ODROID-u3 via DHCP/TFTP with the images created by the `odroid_x2` target. For completeness sake I will explain what we changed and used to accomplish this. *Genode* - We adapted ehci ref frequency in the platform.cc file [0] for "Odroid Us" *Fiasco* - Since we are using r67 of Fiasco.OC, we changed the uart_nr to 1 as this is the default uart interface [1] - This shouldn't be necessary anymore, since with r72 (used by the current Genode vers. afaik) and above the uart_nr is now configurable via the kernel configuration. [2] *U-Boot* - As we rely on u-boot as our boot loader we used the following commands to build u-boot and fuse it onto a SD card: > # get u-boot source code > git clone --branch v2017.09 http://git.denx.de/u-boot.git > cd u-boot > # download and extract toolchain > curl > https://releases.linaro.org/components/toolchain/binaries/latest-5/arm-eabi/gcc-linaro-5.5.0-2017.10-x86_64_arm-eabi.tar.xz > | tar xJ > # temporarily add toolchain to path and set CROSS_COMPILE environment variable > export PATH=$(pwd)/gcc-linaro-5.5.0-2017.10-x86_64_arm-eabi/bin:$PATH > export CROSS_COMPILE=arm-eabi- > # select and compile for droid-u3 > make odroid_defconfig > make > # download binary blobs (boot.tar.gz) > curl http://odroid.in/guides/ubuntu-lfs/boot.tar.gz | tar xz > cd boot > # prepare the SD card to leave some space in the front, > # since the binary blobs and u-boot image will be copied to the beginning of > it > ( > echo "o" # create new dos partition layout > echo "n" # create new partition > echo "p" # primary > echo "1" # first partition > echo "2097152" # first sector after 1 GB (sector size 512 bytes) > echo "+8G" # 8 GB size > echo "t" # change partition type > echo "0c" # w95 fat32 (lba) > echo "w" # write changes > ) | sudo fdisk /dev/null # replace /dev/null with your SD card > sudo mkfs.fat -n GENODE /dev/null # replace /dev/null with the first > partition of your SD card > # finally fuse u-boot onto the SD card > cp ../u-boot-dtb.bin u-boot.bin > sh sd_fusing.sh /dev/null # replace /dev/null with your SD card - Since USB support/TFTP boot seems to be "broken" the following bootcmd works for us in mainline U-Boot to successfully bring up TFTP boot and be able to use the USB/ETH device in Genode itself after boot: > # configure an ethernet address > setenv usbethaddr 02:DE:AD:BE:EF:FF > # change bootcmd to boot via dhcp > # workaround for the usb ethernet - seems to work that way > setenv bootcmd 'usb reset; usb reset; dhcp ${scriptaddr}; usb reset; usb > stop; bootelf ${scriptaddr}' > # save settings on the SD card > saveenv > reset Regards, Alexander [0] https://github.com/genodelabs/genode/blob/17.08/repos/dde_linux/src/lib/usb/spec/odroid_x2/platform.cc#L152-L154 [1] https://github.com/skalk/foc/blob/r67/l4/pkg/bootstrap/server/src/platform/exynos.cc#L33 [2] https://github.com/skalk/foc/blob/r72/l4/pkg/bootstrap/server/src/platform/exynos.cc#L33 On 2017-03-10 12:39, Bernhard Blieninger wrote: > Hi, > > I just wanted to ask if someone can please help me with this problem > again, it still exists and i have no clue on how to fix it. > > Thanks. > > Best Regards, > > Bernhard. > > On 31.01.2017 16:17, Bernhard Blieninger wrote: >> Hi Reinier, >> >> thanks for the answer. >> Now I get new errors. :-( >> >> So i downloaded the release you said and edited the odroid.h. >> It now states this: >> >> . >> #define CONFIG_EXTRA_ENV_SETTINGS \ >> "usbethaddr=02:DE:AD:BE:EF:FF\0"\ >> "ipaddr=10.12.119.169\0"\ >> "netmask=255.255.255.0\0"\ >> "gatewayip=10.12.119.253\0"\ >> "serverip=10.12.119.181\0"\ >> "autoboot=" \ >> "usb start; " \ >> "tftpboot 0x40001000 exynos4/image.img; " \ >> "bootz 0x40001000; \0" >> >> >> Then i used your make odroid_defconfig and a make -j afterwards. >> The second make generates an error: >> - >> make odroid_config >> >> HOSTCC scripts/basic/fixdep >> GEN ./Makefile >> HOSTCC scripts/kconfig/conf.o >> HOSTCC scripts/kconfig/zconf.tab.o >> HOSTLD scripts/kconfig/conf >> # >> # configuration written to .config >> # >> --- >> >> make >> . >> LD arch/arm/cpu/armv7/built-in.o >> AS arch/arm/cpu/armv7/start.o >> AS arch/arm/lib/vectors.o >> AS arch/arm/lib/crt0.o >> AS arch/arm/lib/relocate.o >> CC arch/arm/lib/bootm-fdt.o >> CC arch/arm/lib/bootm.o >> ../arch/arm/lib/bootm.c:27:28: error: asm/arch/timer.h: No such file >> or directory >> ../scripts/Makefile.build:275: recipe for target >> 'arch/arm/lib/bootm.o' failed >> make[2]: *** [arch/arm/lib/bootm.o] Error 1 >> >> >> >> Did not find the asm/arch/timer.h
Re: foc_odroid_x2 with tftp boot via uboot on odroid u3
Hi, I just wanted to ask if someone can please help me with this problem again, it still exists and i have no clue on how to fix it. Thanks. Best Regards, Bernhard. On 31.01.2017 16:17, Bernhard Blieninger wrote: Hi Reinier, thanks for the answer. Now I get new errors. :-( So i downloaded the release you said and edited the odroid.h. It now states this: . #define CONFIG_EXTRA_ENV_SETTINGS \ "usbethaddr=02:DE:AD:BE:EF:FF\0"\ "ipaddr=10.12.119.169\0"\ "netmask=255.255.255.0\0"\ "gatewayip=10.12.119.253\0"\ "serverip=10.12.119.181\0"\ "autoboot=" \ "usb start; " \ "tftpboot 0x40001000 exynos4/image.img; " \ "bootz 0x40001000; \0" Then i used your make odroid_defconfig and a make -j afterwards. The second make generates an error: - make odroid_config HOSTCC scripts/basic/fixdep GEN ./Makefile HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config # --- make . LD arch/arm/cpu/armv7/built-in.o AS arch/arm/cpu/armv7/start.o AS arch/arm/lib/vectors.o AS arch/arm/lib/crt0.o AS arch/arm/lib/relocate.o CC arch/arm/lib/bootm-fdt.o CC arch/arm/lib/bootm.o ../arch/arm/lib/bootm.c:27:28: error: asm/arch/timer.h: No such file or directory ../scripts/Makefile.build:275: recipe for target 'arch/arm/lib/bootm.o' failed make[2]: *** [arch/arm/lib/bootm.o] Error 1 Did not find the asm/arch/timer.h under arch/arm/lib/ and i though bootm will not be compiled, because I am using bootz now with your config? I did not find this include line of asm/arch/timer.h in the github project https://github.com/hardkernel/u-boot/blob/odroid-v2010.12/arch/arm/lib/bootm.c but s905_6.0.1_v1.7 of the releases gives me the same error. I also tried the 2015.10 branch of harkernel/u-boot which not even accepts the first make odroid_defconfig command even if i copy the odroid.h. I am using the gcc from http://odroid.com/dokuwiki/doku.php?id=en:u3_building_u-boot , could it be that I miss the correct cross compiler? Is there something else I miss? Thanks. Best regards, Bernhard. On 30.01.2017 15:56, Reinier Millo Sánchez wrote: Hi Bernhard This is the Uboot version that we are using on Odroid-X2 an Odroid-U3 https://github.com/hardkernel/u-boot To compile the odroid source code we are using the odroid_defconfig. make odroid_defconfig We recomend you use the last release (s905_6.0.1_v1.6). We have modified the define of CONFIG_EXTRA_ENV_SETTINGS in include/configs/odroid.h file to use our default configuration "usbethaddr=02:DE:AD:BE:EF:FF\0"\ "ipaddr=10.12.119.169\0"\ "netmask=255.255.255.0\0"\ "gatewayip=10.12.119.253\0"\ "serverip=10.12.119.181\0"\ "autoboot=" \ "usb start; " \ "tftpboot 0x40001000 exynos4/image.img; " \ "bootz 0x40001000; \0" In this case the Uboot is compiled with bootz support. The kernel image is generated using the script that Alexy had sent to you, or you can use the command: genode-arm-objcopy -O binary Alexy has told me that check the load address to 0x40001000 like the example. We recomend you to try first with the most basic example printf and then more complex examples. We have used GenodeOS on both Odroids using Fiasco.OS as base microkernel. I hope that this can help you to solve the problem. Best regards On 01/27/2017 08:40 AM, Bernhard Blieninger wrote: Hi, this is only leading to an out-of-mem exception. I read somewhere that the uImage hast to be loaded somewhere else than the actual place it will be placed after loading from the tftp server. I also thought maybe this 0x4100 is not the right adress where the kernel is normally stored(saw some 0x40008000 somewhere) and I overwrite something from the boot loader code. Log Output is: U-Boot 2010.12-0-gb93fb15-dirty (Jan 18 2017 - 20:24:29) for Exynox4412 CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9] APLL = 1000MHz, MPLL = 880MHz DRAM: 2 GiB PMIC VERSION : 0x00, CHIP REV : 3 TrustZone Enabled BSP BL1 version: 20121128 Checking Boot Mode ... SDMMC MMC Device 0: 15343 MB *** Warning - using default environment In: serial Out: serial Err: serial ModeKey Check... run normal_boot Net: usb_ether Hit any key to stop autoboot: 0 >>> Load Boot Script from mmc 0:1 <<< reading boot.scr 367 bytes read in 22 ms (15.6 KiB/s) ## Executing script at 40008000 (Re)start USB... USB0: Exynos4412-ehci: init hccr 1258 and hcor 12580010 hc_length 16 usb: usb_refclk_enable is active low: YES ProTIP: If usb doesn't work - try playing with 'usb_invert_clken' environment USB EHCI 1.00 scanning bus 0 for devices... 3 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found scanning
Re: foc_odroid_x2 with tftp boot via uboot on odroid u3
Hi Reinier, thanks for the answer. Now I get new errors. :-( So i downloaded the release you said and edited the odroid.h. It now states this: . #define CONFIG_EXTRA_ENV_SETTINGS \ "usbethaddr=02:DE:AD:BE:EF:FF\0"\ "ipaddr=10.12.119.169\0"\ "netmask=255.255.255.0\0"\ "gatewayip=10.12.119.253\0"\ "serverip=10.12.119.181\0"\ "autoboot=" \ "usb start; " \ "tftpboot 0x40001000 exynos4/image.img; " \ "bootz 0x40001000; \0" Then i used your make odroid_defconfig and a make -j afterwards. The second make generates an error: - make odroid_config HOSTCC scripts/basic/fixdep GEN ./Makefile HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config # --- make . LD arch/arm/cpu/armv7/built-in.o AS arch/arm/cpu/armv7/start.o AS arch/arm/lib/vectors.o AS arch/arm/lib/crt0.o AS arch/arm/lib/relocate.o CC arch/arm/lib/bootm-fdt.o CC arch/arm/lib/bootm.o ../arch/arm/lib/bootm.c:27:28: error: asm/arch/timer.h: No such file or directory ../scripts/Makefile.build:275: recipe for target 'arch/arm/lib/bootm.o' failed make[2]: *** [arch/arm/lib/bootm.o] Error 1 Did not find the asm/arch/timer.h under arch/arm/lib/ and i though bootm will not be compiled, because I am using bootz now with your config? I did not find this include line of asm/arch/timer.h in the github project https://github.com/hardkernel/u-boot/blob/odroid-v2010.12/arch/arm/lib/bootm.c but s905_6.0.1_v1.7 of the releases gives me the same error. I also tried the 2015.10 branch of harkernel/u-boot which not even accepts the first make odroid_defconfig command even if i copy the odroid.h. I am using the gcc from http://odroid.com/dokuwiki/doku.php?id=en:u3_building_u-boot , could it be that I miss the correct cross compiler? Is there something else I miss? Thanks. Best regards, Bernhard. On 30.01.2017 15:56, Reinier Millo Sánchez wrote: Hi Bernhard This is the Uboot version that we are using on Odroid-X2 an Odroid-U3 https://github.com/hardkernel/u-boot To compile the odroid source code we are using the odroid_defconfig. make odroid_defconfig We recomend you use the last release (s905_6.0.1_v1.6). We have modified the define of CONFIG_EXTRA_ENV_SETTINGS in include/configs/odroid.h file to use our default configuration "usbethaddr=02:DE:AD:BE:EF:FF\0"\ "ipaddr=10.12.119.169\0"\ "netmask=255.255.255.0\0"\ "gatewayip=10.12.119.253\0"\ "serverip=10.12.119.181\0"\ "autoboot=" \ "usb start; " \ "tftpboot 0x40001000 exynos4/image.img; " \ "bootz 0x40001000; \0" In this case the Uboot is compiled with bootz support. The kernel image is generated using the script that Alexy had sent to you, or you can use the command: genode-arm-objcopy -O binary Alexy has told me that check the load address to 0x40001000 like the example. We recomend you to try first with the most basic example printf and then more complex examples. We have used GenodeOS on both Odroids using Fiasco.OS as base microkernel. I hope that this can help you to solve the problem. Best regards On 01/27/2017 08:40 AM, Bernhard Blieninger wrote: Hi, this is only leading to an out-of-mem exception. I read somewhere that the uImage hast to be loaded somewhere else than the actual place it will be placed after loading from the tftp server. I also thought maybe this 0x4100 is not the right adress where the kernel is normally stored(saw some 0x40008000 somewhere) and I overwrite something from the boot loader code. Log Output is: U-Boot 2010.12-0-gb93fb15-dirty (Jan 18 2017 - 20:24:29) for Exynox4412 CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9] APLL = 1000MHz, MPLL = 880MHz DRAM: 2 GiB PMIC VERSION : 0x00, CHIP REV : 3 TrustZone Enabled BSP BL1 version: 20121128 Checking Boot Mode ... SDMMC MMC Device 0: 15343 MB *** Warning - using default environment In: serial Out: serial Err: serial ModeKey Check... run normal_boot Net: usb_ether Hit any key to stop autoboot: 0 >>> Load Boot Script from mmc 0:1 <<< reading boot.scr 367 bytes read in 22 ms (15.6 KiB/s) ## Executing script at 40008000 (Re)start USB... USB0: Exynos4412-ehci: init hccr 1258 and hcor 12580010 hc_length 16 usb: usb_refclk_enable is active low: YES ProTIP: If usb doesn't work - try playing with 'usb_invert_clken' environment USB EHCI 1.00 scanning bus 0 for devices... 3 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found scanning usb for ethernet devices... 1 Ethernet Device(s) found scanning usb for keyboard ... Waiting for Ethernet connection... done. BOOTP broadcast 1 DHCP client bound to address 192.168.0.7 Waiting for Ethernet
Re: foc_odroid_x2 with tftp boot via uboot on odroid u3
Hi, this is only leading to an out-of-mem exception. I read somewhere that the uImage hast to be loaded somewhere else than the actual place it will be placed after loading from the tftp server. I also thought maybe this 0x4100 is not the right adress where the kernel is normally stored(saw some 0x40008000 somewhere) and I overwrite something from the boot loader code. Log Output is: U-Boot 2010.12-0-gb93fb15-dirty (Jan 18 2017 - 20:24:29) for Exynox4412 CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9] APLL = 1000MHz, MPLL = 880MHz DRAM: 2 GiB PMIC VERSION : 0x00, CHIP REV : 3 TrustZone Enabled BSP BL1 version: 20121128 Checking Boot Mode ... SDMMC MMC Device 0: 15343 MB *** Warning - using default environment In: serial Out: serial Err: serial ModeKey Check... run normal_boot Net: usb_ether Hit any key to stop autoboot: 0 >>> Load Boot Script from mmc 0:1 <<< reading boot.scr 367 bytes read in 22 ms (15.6 KiB/s) ## Executing script at 40008000 (Re)start USB... USB0: Exynos4412-ehci: init hccr 1258 and hcor 12580010 hc_length 16 usb: usb_refclk_enable is active low: YES ProTIP: If usb doesn't work - try playing with 'usb_invert_clken' environment USB EHCI 1.00 scanning bus 0 for devices... 3 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found scanning usb for ethernet devices... 1 Ethernet Device(s) found scanning usb for keyboard ... Waiting for Ethernet connection... done. BOOTP broadcast 1 DHCP client bound to address 192.168.0.7 Waiting for Ethernet connection... done. Using sms0 device TFTP from server 131.159.12.22; our IP address is 192.168.0.7; sending through 4 Filename 'odroid/uImage'. Load address: 0x4100 Loading: # 266.6 KiB/s done Bytes transferred = 773987 (bcf63 hex) ## Booting kernel from Legacy Image at 4100 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size:773923 Bytes = 755.8 KiB Load Address: 4100 Entry Point: 4100 Verifying Checksum ... OK Uncompressing Kernel Image ... Error: inflate() returned -3 GUNZIP: uncompress, out-of-mem or overwrite error - must RESET board to recover resetting ... reset... OK - Here the device restarts and ends in a loop. Best regards, Bernhard. On 26.01.2017 22:08, rmillo wrote: Hi Bernhard Try to load the kernel image directly to the address 0x4100 not 0x7000 and them perform a bootm to the addres 0x4100. The first bootm that you do with 0x7000 give you unknown os, because the kernel entry point is at 0x4100. Check this, if this don't work tomorrow we can sent you the uboot steps to run a GenodeOS image. Best regards On 26/01/2017 03:58 PM, Bernhard Blieninger wrote: Hi, thanks for the answers. If you say you got the x2 to work at the odroid u3, I believe its clearly a uboot problem. I had to use bootm twice because the first use gave me the "unknown os" error. I think the first bootm call loads the uImage from the preload location 0x7000 to 0x4100 and the second one loads it from 0x4100. So the first bootm could possibly only be "bootm" without parameter, the second one needs to have the 0x4100 to work. I also tried bootelf with the image.elf and bootp, nothing worked so far. bootelf freezes quite similar to the bootm command. It says, that its starting the application. The script Alexy sent is working and I compiled an image.img in the meantime and deployed it at the tftp server. I also renamed it to zImage. Problem still exists. I tried your uboot code, but I fail to flash it to the sd card. Am I right that I have to use: apt-get install device-tree-compiler (for needed dts, was not necessary at the previous version) make odroid_config (make smdk4412_config is not present) make -j Is the odroid config for u3? There is no sd_fuse folder so I am somehow stuck here, because I have no idea on how to format the sd card correctly and where to put which files. Would appreciate if you can give some kind of instruction on how to prepare sd cards or emmc for such devices and flash all necessary files to it. I think that my formatting, which leaves the first 1GB of the sd untouched, is not the best way and I am an absolute beginner here. Thanks. Best regards, Bernhard. On 26.01.2017 21:17, rmillo wrote: Hi Bernhard It does not seem to be a network or usb problem. Clearly the uboot is loading the image from TFTP server. Why do you use two bootm calls, if you only load the uImage in address 0x7000? When uboot is usesd to boot some operating systems like android or other linux distributions bootm can be used as: bootm $(kernel_addr) $(ramdisk_addr) But this only can done if there are loaded on memory the kernel and the ramdisk. In this case GenodeOS don't use ramdisk, it uses only kernel image. I think that the problem
Re: foc_odroid_x2 with tftp boot via uboot on odroid u3
Hi, thanks for the answers. If you say you got the x2 to work at the odroid u3, I believe its clearly a uboot problem. I had to use bootm twice because the first use gave me the "unknown os" error. I think the first bootm call loads the uImage from the preload location 0x7000 to 0x4100 and the second one loads it from 0x4100. So the first bootm could possibly only be "bootm" without parameter, the second one needs to have the 0x4100 to work. I also tried bootelf with the image.elf and bootp, nothing worked so far. bootelf freezes quite similar to the bootm command. It says, that its starting the application. The script Alexy sent is working and I compiled an image.img in the meantime and deployed it at the tftp server. I also renamed it to zImage. Problem still exists. I tried your uboot code, but I fail to flash it to the sd card. Am I right that I have to use: apt-get install device-tree-compiler (for needed dts, was not necessary at the previous version) make odroid_config (make smdk4412_config is not present) make -j Is the odroid config for u3? There is no sd_fuse folder so I am somehow stuck here, because I have no idea on how to format the sd card correctly and where to put which files. Would appreciate if you can give some kind of instruction on how to prepare sd cards or emmc for such devices and flash all necessary files to it. I think that my formatting, which leaves the first 1GB of the sd untouched, is not the best way and I am an absolute beginner here. Thanks. Best regards, Bernhard. On 26.01.2017 21:17, rmillo wrote: Hi Bernhard It does not seem to be a network or usb problem. Clearly the uboot is loading the image from TFTP server. Why do you use two bootm calls, if you only load the uImage in address 0x7000? When uboot is usesd to boot some operating systems like android or other linux distributions bootm can be used as: bootm $(kernel_addr) $(ramdisk_addr) But this only can done if there are loaded on memory the kernel and the ramdisk. In this case GenodeOS don't use ramdisk, it uses only kernel image. I think that the problem with Genode can be the image format. As Alexy Gallardo explains we have tested the Odroid-U3 with the Odroid-X2 support, but we boot the image with the bootz (at address 0x4100) command because we use a zImage format created with the raw_image script that him attached to you. Your uboot seems to don't have this command (bootz), maybe it can be enable on uboot compilation. Now i'm not in work to see the source of Uboot that we are using, but take a look on this Uboot project with support to Odroid-X2 and Odroid-U3.: https://github.com/dsd/u-boot Have you tried boot the elf image with bootelf? Or have you tried to boot the same image from an storage device to test it first and then move it for the tftp? Best regards On 26/01/2017 02:50 PM, Bernhard Blieninger wrote: Hi all, tried something else instead. Deleted the whole sd card again and flashed it with a fat32 partition starting at 1GB to ensure I don't write some place, that is rewritten when sd_fusing script writes boot data to sd card. I feared that if i load 0x4100 it could be the zImage kernel which is on the sd card already. I also have to correct myself i have to use the usbnet uboot code from here: https://github.com/mkaczanowski/u-boot/tree/odroid-u3-usbnet Otherwhise it wont boot the usb parts(network card). Now I used the uImage from Ubuntu from the tftp server and the uImage from the genode build. The boot.txt looks like this: setenv ethact sms0 setenv ethaddr 00:10:75:2A:AE:E0 setenv gatewayip 192.168.0.254 setenv netmask 255.255.255.0 setenv serverip 131.159.12.22 setenv usbethaddr 00:10:75:2A:AE:E0 setenv ipaddr 192.168.0.23 usb start tftp 0x7000 odroid/uImage bootm 0x7000 bootm 0x4100 Boot uImage now seem to work, Ubuntu runs to its kernel panic again but Genode now unfortunately hangs at Starting kernel. Is it possible that now all is running as expected but x2 genode code can not be used at u3? I'd expected that i should at least be able to boot, even if some usb drivers or something will not work? Best regards, Bernhard. Here is the full log dump: U-Boot 2010.12-0-gb93fb15-dirty (Jan 18 2017 - 20:24:29) for Exynox4412 CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9] APLL = 1000MHz, MPLL = 880MHz DRAM: 2 GiB PMIC VERSION : 0x00, CHIP REV : 3 TrustZone Enabled BSP BL1 version: 20121128 Checking Boot Mode ... SDMMC MMC Device 0: 15343 MB *** Warning - using default environment In: serial Out: serial Err: serial ModeKey Check... run normal_boot Net: usb_ether Hit any key to stop autoboot: 0 >>> Load Boot Script from mmc 0:1 <<< reading boot.scr 351 bytes read in 23 ms (14.6 KiB/s) ## Executing script at 40008000 (Re)start USB... USB0: Exynos4412-ehci: init hccr 1258 and hcor 12580010 hc_length 16 usb: usb_refclk_enable is active
Re: foc_odroid_x2 with tftp boot via uboot on odroid u3
Hi Bernhard It does not seem to be a network or usb problem. Clearly the uboot is loading the image from TFTP server. Why do you use two bootm calls, if you only load the uImage in address 0x7000? When uboot is usesd to boot some operating systems like android or other linux distributions bootm can be used as: bootm $(kernel_addr) $(ramdisk_addr) But this only can done if there are loaded on memory the kernel and the ramdisk. In this case GenodeOS don't use ramdisk, it uses only kernel image. I think that the problem with Genode can be the image format. As Alexy Gallardo explains we have tested the Odroid-U3 with the Odroid-X2 support, but we boot the image with the bootz (at address 0x4100) command because we use a zImage format created with the raw_image script that him attached to you. Your uboot seems to don't have this command (bootz), maybe it can be enable on uboot compilation. Now i'm not in work to see the source of Uboot that we are using, but take a look on this Uboot project with support to Odroid-X2 and Odroid-U3.: https://github.com/dsd/u-boot Have you tried boot the elf image with bootelf? Or have you tried to boot the same image from an storage device to test it first and then move it for the tftp? Best regards On 26/01/2017 02:50 PM, Bernhard Blieninger wrote: > Hi all, > > tried something else instead. > Deleted the whole sd card again and flashed it with a fat32 partition > starting at 1GB to ensure I don't write some place, that is rewritten when > sd_fusing script writes boot data to sd card. > I feared that if i load 0x4100 it could be the zImage kernel which is on > the sd card already. > > I also have to correct myself i have to use the usbnet uboot code from here: > https://github.com/mkaczanowski/u-boot/tree/odroid-u3-usbnet > Otherwhise it wont boot the usb parts(network card). > > Now I used the uImage from Ubuntu from the tftp server and the uImage from > the genode build. > The boot.txt looks like this: > > setenv ethact sms0 > setenv ethaddr 00:10:75:2A:AE:E0 > setenv gatewayip 192.168.0.254 > setenv netmask 255.255.255.0 > setenv serverip 131.159.12.22 > setenv usbethaddr 00:10:75:2A:AE:E0 > setenv ipaddr 192.168.0.23 > > usb start > tftp 0x7000 odroid/uImage > bootm 0x7000 > bootm 0x4100 > > Boot uImage now seem to work, Ubuntu runs to its kernel panic again but > Genode now unfortunately hangs at Starting kernel. > > Is it possible that now all is running as expected but x2 genode code can not > be used at u3? > I'd expected that i should at least be able to boot, even if some usb drivers > or something will not work? > > Best regards, > > Bernhard. > > Here is the full log dump: > > U-Boot 2010.12-0-gb93fb15-dirty (Jan 18 2017 - 20:24:29) for Exynox4412 > > > CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9] > > APLL = 1000MHz, MPLL = 880MHz > > DRAM: 2 GiB > > > PMIC VERSION : 0x00, CHIP REV : 3 > > TrustZone Enabled BSP > > BL1 version: 20121128 > > > Checking Boot Mode ... SDMMC > > MMC Device 0: 15343 MB > > *** Warning - using default environment > > > In:serial > > Out: serial > > Err: serial > > ModeKey Check... run normal_boot > > Net: usb_ether > > Hit any key to stop autoboot: 0 > Load Boot Script from mmc 0:1 <<< > reading boot.scr > > 351 bytes read in 23 ms (14.6 KiB/s) > > ## Executing script at 40008000 > > (Re)start USB... > > USB0: Exynos4412-ehci: init hccr 1258 and hcor 12580010 hc_length 16 > > usb: usb_refclk_enable is active low: YES > > ProTIP: If usb doesn't work - try playing with 'usb_invert_clken' environment > > USB EHCI 1.00 > > scanning bus 0 for devices... 3 USB Device(s) found > > scanning usb for storage
Re: foc_odroid_x2 with tftp boot via uboot on odroid u3
Hello, Sorry for the previous email the two lines that I said put in "etc / build" of the compilation directory of foc_odroid_x2 only works on the genodeOS version that we have here. For it to work you must add the attached script in "genodeDir / tool / run / image". Set on ../genodeDir/build/foc_odroid_x2/etc/build.conf the fellowing lines For generate a zImage and now if it should work RUN_OPT = --include boot_dir / foc \ --include image / raw_image Copy the image to the TFTP server At the start of the uboot If image format is zImage use: Usb start Tftp 0x40001000 odroid / uImage Bootz 0x40001000 If this does not work try changing the uboot version. At the beginning of us working with the odroid the uboot version did not allow support for the network. I do not know if this is what may be happening to you. In github there are several uboot projects that can be compiled for the odroid. Regards Alexy On jueves, 26 de enero de 2017 1:57:19 P. M. CST Bernhard Blieninger wrote: > Hi Alexy, > > thanks for the hint. > If I just use your two lines as they are written below and put the uboot > lines away compiling won't start with the error message: > Aborting, could not load '../genode/tool/run/image/raw_image' > > There is not image/raw_image in this folder and i unfortunately didn't > find anything about it with google. > > I do also not have any bootz command, it says unkown command bootz, the > bootm command boots the zImages without complaining. > > > Best regards, > > Bernhard. > > On 25.01.2017 20:58, Alexy Gallardo Segura wrote: > > Hi, > > > >> |setenv ethact sms0| > >> |setenv ethaddr 00:10:75:2A:AE:E0| > >> |setenv gatewayip 192.168.4.1| > >> |setenv netmask 255.255.255.0| > >> |setenv serverip 192.168.4.2| > >> |setenv usbethaddr 00:10:75:2A:AE:E0| > >> |setenv ipaddr 192.168.4.43| > >> | > >> |usb start| > >> |tftp 0x7000 odroid/uImage| > >> |bootm| > > > > If image format is zImage use: > > usb start > > tftp 0x7000 odroid/uImage > > bootz 0x7000 > > > > set on ../genodeDir/build/foc_odroid_x2/etc/build.conf the fellowing > > lines > > for generate a zImage. > > > > RUN_OPT = --include boot_dir/foc \ > > > > --include image/raw_image > > > > cheers, > > > > Alexy > > > >> |Where uImage is the uImage created from the foc_odroid build. > >> > >> Then I used > >> > >> ||mkimage -A arm -C none -T script -n 'Custom Boot Script' -d > >> > >> boot.txt boot.scr|| > >> || > >> ||to build the boot.scr and booted the odroid u3.|| > > > > -- > > Check out the vibrant tech community on one of the world's most > > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > > ___ > > genode-main mailing list > > genode-main@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/genode-main -- Lic. Alexy Gallardo Segura\nCentro Territorial Villa Clara.\nEmpresa de Tecnologías de la Información para la Defensa (XETID)-UCLV\nCarretera a Camajuaní, km 5.5, Santa Clara, Villa Clara, CUBA\nE-mail: al...@uclv.cu, al...@xetid.cu\nTeléf:042-226714\nwww.xetid.cu\n## # Build specific binary raw image # # \param elf_img ELF binary to build raw image from # proc run_image {elf_img} { # parse ELF entrypoint and load address set raw_img "[run_dir]/image.img" exec [cross_dev_prefix]objcopy -O binary $elf_img $raw_img puts "Binary raw image created: ./$raw_img" }-- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Re: foc_odroid_x2 with tftp boot via uboot on odroid u3
Hi Christian, thanks, this did not fix the problem either. I tested it with the uImage from ubuntu and the uImage from genode. Best regards, Bernhard. On 26.01.2017 11:15, Christian Helmuth wrote: Hi, I've just a small hint regarding the following issue. On Wed, Jan 25, 2017 at 07:30:11PM +0100, Bernhard Blieninger wrote: mkimage -A arm -C none -T script -n 'Custom Boot Script' -d boot.txt boot.scr Problem now is that is says something like: *ERROR: booting os 'Unknown OS' (3) is not supported* When generating an uImage mkimage supports to set the operating system in the commandline via '-O '. So, your mkimage command line should read mkimage -A arm -O linux -C none -T script -n 'Custom Boot Script' -d boot.txt boot.scr Hope it helps smime.p7s Description: S/MIME Cryptographic Signature -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Re: foc_odroid_x2 with tftp boot via uboot on odroid u3
Hi Alexy, thanks for the hint. If I just use your two lines as they are written below and put the uboot lines away compiling won't start with the error message: Aborting, could not load '../genode/tool/run/image/raw_image' There is not image/raw_image in this folder and i unfortunately didn't find anything about it with google. I do also not have any bootz command, it says unkown command bootz, the bootm command boots the zImages without complaining. Best regards, Bernhard. On 25.01.2017 20:58, Alexy Gallardo Segura wrote: Hi, |setenv ethact sms0| |setenv ethaddr 00:10:75:2A:AE:E0| |setenv gatewayip 192.168.4.1| |setenv netmask 255.255.255.0| |setenv serverip 192.168.4.2| |setenv usbethaddr 00:10:75:2A:AE:E0| |setenv ipaddr 192.168.4.43| || |usb start| |tftp 0x7000 odroid/uImage| |bootm| If image format is zImage use: usb start tftp 0x7000 odroid/uImage bootz 0x7000 set on ../genodeDir/build/foc_odroid_x2/etc/build.conf the fellowing lines for generate a zImage. RUN_OPT = --include boot_dir/foc \ --include image/raw_image cheers, Alexy |Where uImage is the uImage created from the foc_odroid build. Then I used ||mkimage -A arm -C none -T script -n 'Custom Boot Script' -d boot.txt boot.scr|| ||to build the boot.scr and booted the odroid u3.|| -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main smime.p7s Description: S/MIME Cryptographic Signature -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Re: foc_odroid_x2 with tftp boot via uboot on odroid u3
Hi, I've just a small hint regarding the following issue. On Wed, Jan 25, 2017 at 07:30:11PM +0100, Bernhard Blieninger wrote: > mkimage -A arm -C none -T script -n 'Custom Boot Script' -d boot.txt boot.scr > > Problem now is that is says something like: > >*ERROR: booting os 'Unknown OS' (3) is not supported* When generating an uImage mkimage supports to set the operating system in the commandline via '-O '. So, your mkimage command line should read mkimage -A arm -O linux -C none -T script -n 'Custom Boot Script' -d boot.txt boot.scr Hope it helps -- Christian Helmuth Genode Labs https://www.genode-labs.com/ · https://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/ Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Re: foc_odroid_x2 with tftp boot via uboot on odroid u3
Hi, > |setenv ethact sms0| > |setenv ethaddr 00:10:75:2A:AE:E0| > |setenv gatewayip 192.168.4.1| > |setenv netmask 255.255.255.0| > |setenv serverip 192.168.4.2| > |setenv usbethaddr 00:10:75:2A:AE:E0| > |setenv ipaddr 192.168.4.43| > || > |usb start| > |tftp 0x7000 odroid/uImage| > |bootm| If image format is zImage use: usb start tftp 0x7000 odroid/uImage bootz 0x7000 set on ../genodeDir/build/foc_odroid_x2/etc/build.conf the fellowing lines for generate a zImage. RUN_OPT = --include boot_dir/foc \ --include image/raw_image cheers, Alexy > > |Where uImage is the uImage created from the foc_odroid build. > > Then I used > > > > ||mkimage -A arm -C none -T script -n 'Custom Boot Script' -d > boot.txt boot.scr|| > > > ||to build the boot.scr and booted the odroid u3.|| -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main