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