Genode on Odroid-XU4

Stefan Kalkowski stefan.kalkowski at ...1...
Thu Jan 5 09:07:54 CET 2017


Hello,

On 01/04/2017 10:46 PM, Yevgeny Lavrov wrote:
> Thanks, Stefan :) Now I see some output. I've checked minicom settings
> for UART, and it is was set to: 115200 8N1. Changing settings there
> didn't help, so I went the suggested alternative path and out commented
> the 'Exynos_uart_base' constructor's body. Now I get:
> 
> kernel initialized
> prefetch abort
> pc : [<800494e0>] lr : [<0000001a>]
> sp : be75af38   ip : 800023e4    fp : be8651a4
> r10: be8ab408  r9 : 00000000    r8 : be75af30
> r7 : 800c4000   r6 : 80111028    r5 : 00000000    r4 : 80095ce8
> r3 : ffff03f4       r2 : 00000000    r1 : 80111028    r0 : 800023e4
> Flags: nzCv IRQs off FIQs off Mode HYP_32
> Resetting CPU ...
> emmc resetting ...
> resetting ...
> 
> I assume that this is the desired output.
> Having this initial step completed, now I have two questions: What does
> this output tell me, and where can I go from here?

The "kernel initialized" message is desired output, but then you see
that the exception vector that was setup by u-boot is entered
("prefetch-abort"), which means Genode's HW kernel tries to execute an
address that is not valid in its page-table.

You can check whether the address 0x800494e0 is a valid .text address in
the core binary. You can find the unstripped core binary under
var/run/<run-script-name>.core in your build directory.

I'm afraid at that point you have to start to debug the problem using
either a JTAG debugger, or by instrumenting the kernel/core code via
"log" messages around the corresponding problem point.

Regards
Stefan

> 
> Thanks
> 
> On Wed, Jan 4, 2017 at 2:50 AM, Stefan Kalkowski
> <stefan.kalkowski at ...1...
> <mailto:stefan.kalkowski at ...1...>> wrote:
> 
>     Hi Yevgeny,
> 
>     congratulations for the first successful steps. Obviously the UART
>     configuration is not proper. One potential problem can be the UART
>     reference clock setting, original value:
> 
>       repos/base/include/spec/odroid_xu/drivers/board_base.h:31:
> 
>     The reference clock's value is used to calculate the settings for the
>     appropriated baudrate. Are you using the baudrate 115200 in your UART
>     terminal? Because this is the baudrate the kernel configures the UART to
>     use.
> 
>     Alternatively, you can skip re-configuration of the UART device by
>     uncommenting the 'Exynos_uart_base' constructor's body, here:
> 
>       repos/base/include/spec/exynos/drivers/uart_base.h:213
> 
>     Thereby, you leave the UART settings like u-boot configured it.
> 
>     Regards
>     Stefan
> 
>     On 01/04/2017 01:18 AM, Yevgeny Lavrov wrote:
>     > Hello
>     >
>     > I've followed all the steps suggested above. There were no problems
>     > interacting with Linux system on test board via UART cable. It looks
>     > like Network boot and fastboot (Odroid-XU4 doesn't have USB otg port)
>     > are not supported by Odroid-XU4. After creating hw_odroid_xu build
>     > directory, adding suggested RUN_OPT to build.conf file and executing
>     > make run/log I end up with the following output:
>     >
>     > spawn fastboot -s usb:2-1.8 boot var/run/log/uImage
>     > < waiting for device >
>     > Loading timed out
>     > Load step failed, retry.
>     > spawn fastboot -s usb:2-1.8 boot var/run/log/uImage
>     > < waiting for device >
>     >
>     > So it appears that fastboot can't find the device. Running *$ sudo
>     > fastboot devices -l* returned no results. Probably the reason for this
>     > is that I'm connected to Odroid via UART cable.
>     > So I gave it another try, using fatload option.
>     >
>     > 1. Copied *uImage* &*image.elf* from *<build-dir>/var/run/log/*
>     over to
>     > the first partition of my MicroSD card
>     > 2. Connected to Odroid via UART cable, powered it on and
>     interrupted the
>     > boot sequence
>     >
>     > then:
>     > Exynos5422 # fatload mmc 0 0x48000000 uImage
>     > there are pending interrupts 0x00000001
>     > reading uImage
>     >
>     > 540242 bytes read
>     > Exynos5422 # bootm 0x48000000
>     >
>     > Result:
>     >
>     > ## Booting kernel from Legacy Image at 48000000 ...
>     >   Image Name:
>     >   Image Type: ARM Linux Kernel Image (gzip compressed)
>     >   Data Size: 540178 Bytes = 527.5 KiB
>     >   Load Address: 80000000
>     >   Entry Point: 80000000
>     >   Verifying Checksum ... OK
>     >   Uncompressing Kernel Image ... OK
>     >   Starting kernel ...
>     >   7ၷ`�##������@�����������7ٷ`�##��������@�����##��@...470... at ...467...`
>     >   `hqioh~�#@@@��@...470... at ...468...``````a�~�##��@...470...@��oi��gp@@��@...470... at ...469...```fg�h#@��@...470...@��
>     >   pnia�h##�a`v@��p��h`p@@�q at ...470...#
>     >
>     > image.elf gave me the same output.
>     >
>     > Any suggestions on what goes wrong and which way to move next?
>     >
>     > Regards
>     >
>     >
>     >
>     > On Thu, Dec 1, 2016 at 5:08 AM, Stefan Kalkowski
>     > <stefan.kalkowski at ...1...
>     <mailto:stefan.kalkowski at ...1...>
>     > <mailto:stefan.kalkowski at ...1...
>     <mailto:stefan.kalkowski at ...1...>>> wrote:
>     >
>     >     sorry, I just recognized the SoCs are not fully equal. The
>     first Odroid
>     >     XU, which we are using is Exynos 5410, and your board uses
>     Exynos 5422.
>     >     Anyway, I would follow the same approach. Additionally, you
>     can compare
>     >     memory settings and I/O memory settings of the UART within
>     device-tree
>     >     specifications of the two boards:
>     >
>     >
>     >   
>      https://raw.githubusercontent.com/torvalds/linux/master/arch/arm/boot/dts/exynos5410-odroidxu.dts
>     <https://raw.githubusercontent.com/torvalds/linux/master/arch/arm/boot/dts/exynos5410-odroidxu.dts>
>     >   
>      <https://raw.githubusercontent.com/torvalds/linux/master/arch/arm/boot/dts/exynos5410-odroidxu.dts
>     <https://raw.githubusercontent.com/torvalds/linux/master/arch/arm/boot/dts/exynos5410-odroidxu.dts>>
>     >
>     >     and:
>     >
>     >
>     >   
>      https://raw.githubusercontent.com/torvalds/linux/master/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>     <https://raw.githubusercontent.com/torvalds/linux/master/arch/arm/boot/dts/exynos5422-odroidxu4.dts>
>     >   
>      <https://raw.githubusercontent.com/torvalds/linux/master/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>     <https://raw.githubusercontent.com/torvalds/linux/master/arch/arm/boot/dts/exynos5422-odroidxu4.dts>>
>     >
>     >     Regards
>     >     Stefan
>     >
>     >
>     >     On 12/01/2016 10:42 AM, Stefan Kalkowski wrote:
>     >     > Hello Yevgeny Lavrov,
>     >     >
>     >     > there is basic support for the Odroid XU regarding Genode's
>     own kernel
>     >     > (base-hw). I assume you will be able to start various
>     scenarios that
>     >     > only use CPU, Timers and UART on the Odroid XU4 as well,
>     because they
>     >     > use the same SoC.
>     >     >
>     >     > I would start with connecting a UART cable via the GPIO
>     ports to your
>     >     > home computer, and test whether you can interact with a
>     Linux system
>     >     > running on top of your test board. After that, you might
>     play with
>     >     > u-boot until you can successfully boot over network, e.g., a
>     Linux
>     >     > kernel. Possibly, you cannot even network boot on Odroid
>     XU4, but have
>     >     > to use fastboot (via USB) instead.
>     >     >
>     >     > Finally, you start your Genode development by creating a
>     >     'hw_odroid_xu'
>     >     > build directory, add some RUN_OPT variables to the
>     'etc/build.conf' to
>     >     > automatically load the setup and interact with the test board,
>     >     > corresponding to the method you are using (either network
>     boot or
>     >     > fastboot). Here is some example for the Odroid variant we
>     are testing
>     >     > nightly:
>     >     >
>     >     >   RUN_OPT += --include image/uboot
>     >     >   RUN_OPT += --include load/fastboot
>     >     >   RUN_OPT += --load-fastboot-device 'usb:2-1.8'
>     >     >   RUN_OPT += --include log/serial
>     >     >
>     >     > Then you can start some very basic example, like:
>     >     >
>     >     >   make run/log
>     >     >
>     >     > and wait, whether you get some output, and if the test succeeds.
>     >     >
>     >     > For a general introduction to the build environment and
>     run-script
>     >     > automatisms, have a look at the Genode foundations:
>     >     >
>     >     >     
>     https://genode.org/documentation/genode-foundations-16-05.pdf
>     <https://genode.org/documentation/genode-foundations-16-05.pdf>
>     >     <https://genode.org/documentation/genode-foundations-16-05.pdf
>     <https://genode.org/documentation/genode-foundations-16-05.pdf>>
>     >     >
>     >     > In general, it is a good idea to first skim through this
>     document.
>     >     >
>     >     > Best regards,
>     >     > Stefan
>     >     >
>     >     > On 12/01/2016 09:12 AM, Yevgeny Lavrov wrote:
>     >     >> Greetings
>     >     >>
>     >     >> I would like to try Genode on Odroid-XU4. I aware that
>     there's no
>     >     >> support available for this ARM device yet. However, I want to
>     >     give it a
>     >     >> try, but I don't know where to start. Can you please point
>     me in the
>     >     >> right direction so I can find the information that I'll
>     need to get
>     >     >> started this task?
>     >     >>
>     >     >> Thanks
>     >     >>
>     >     >>
>     >     >>
>     >   
>      ------------------------------------------------------------------------------
>     >     >>
>     >     >>
>     >     >>
>     >     >> _______________________________________________
>     >     >> genode-main mailing list
>     >     >> genode-main at lists.sourceforge.net
>     <mailto:genode-main at lists.sourceforge.net>
>     >     <mailto:genode-main at lists.sourceforge.net
>     <mailto:genode-main at lists.sourceforge.net>>
>     >     >> https://lists.sourceforge.net/lists/listinfo/genode-main
>     <https://lists.sourceforge.net/lists/listinfo/genode-main>
>     >     <https://lists.sourceforge.net/lists/listinfo/genode-main
>     <https://lists.sourceforge.net/lists/listinfo/genode-main>>
>     >     >>
>     >     >
>     >
>     >     --
>     >     Stefan Kalkowski
>     >     Genode Labs
>     >
>     >     https://github.com/skalk · http://genode.org/
>     >
>     >     ------------------------------------------------------------------------------
>     >     _______________________________________________
>     >     genode-main mailing list
>     >     genode-main at lists.sourceforge.net
>     <mailto:genode-main at lists.sourceforge.net>
>     >     <mailto:genode-main at lists.sourceforge.net
>     <mailto:genode-main at lists.sourceforge.net>>
>     >     https://lists.sourceforge.net/lists/listinfo/genode-main
>     <https://lists.sourceforge.net/lists/listinfo/genode-main>
>     >     <https://lists.sourceforge.net/lists/listinfo/genode-main
>     <https://lists.sourceforge.net/lists/listinfo/genode-main>>
>     >
>     >
>     >
>     >
>     >
>     ------------------------------------------------------------------------------
>     > 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 at lists.sourceforge.net
>     <mailto:genode-main at lists.sourceforge.net>
>     > https://lists.sourceforge.net/lists/listinfo/genode-main
>     <https://lists.sourceforge.net/lists/listinfo/genode-main>
>     >
> 
>     --
>     Stefan Kalkowski
>     Genode Labs
> 
>     https://github.com/skalk · http://genode.org/
> 
>     ------------------------------------------------------------------------------
>     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 at lists.sourceforge.net
>     <mailto:genode-main at lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/genode-main
>     <https://lists.sourceforge.net/lists/listinfo/genode-main>
> 
> 
> 
> 
> ------------------------------------------------------------------------------
> 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 at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 

-- 
Stefan Kalkowski
Genode Labs

https://github.com/skalk · http://genode.org/




More information about the users mailing list