Discussion:
Genode on Odroid-XU4
Yevgeny Lavrov
2016-12-01 08:12:11 UTC
Permalink
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
Stefan Kalkowski
2016-12-01 09:42:54 UTC
Permalink
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

In general, it is a good idea to first skim through this document.

Best regards,
Stefan
Post by Yevgeny Lavrov
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
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs

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

------------------------------------------------------------------------------
Stefan Kalkowski
2016-12-01 10:08:25 UTC
Permalink
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

and:


https://raw.githubusercontent.com/torvalds/linux/master/arch/arm/boot/dts/exynos5422-odroidxu4.dts

Regards
Stefan
Post by Stefan Kalkowski
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
RUN_OPT += --include image/uboot
RUN_OPT += --include load/fastboot
RUN_OPT += --load-fastboot-device 'usb:2-1.8'
RUN_OPT += --include log/serial
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
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
Post by Yevgeny Lavrov
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
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs

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

------------------------------------------------------------------------------
Yevgeny Lavrov
2017-01-04 00:18:05 UTC
Permalink
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ٷ`ᅵ##ᅵᅵᅵᅵᅵᅵᅵᅵ@ᅵᅵᅵᅵᅵ##ᅵᅵ@v@ٷxp`
`hqioh~ᅵ#@@@ᅵᅵ@v@طx``````aᅵ~ᅵ##ᅵᅵ@v@ᅵᅵoiᅵᅵgp@@ᅵᅵ@***@p```fgᅵh#@ᅵᅵ@v@ᅵᅵ
pniaᅵh##ᅵa`v@ᅵᅵpᅵᅵh`p@@ᅵ***@v#

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 <
Post by Stefan Kalkowski
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
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/exynos5422-odroidxu4.dts
Regards
Stefan
Post by Stefan Kalkowski
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
RUN_OPT += --include image/uboot
RUN_OPT += --include load/fastboot
RUN_OPT += --load-fastboot-device 'usb:2-1.8'
RUN_OPT += --include log/serial
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
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
Post by Yevgeny Lavrov
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
------------------------------------------------------------
------------------
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs
https://github.com/skalk · http://genode.org/
------------------------------------------------------------
------------------
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
Stefan Kalkowski
2017-01-04 07:50:06 UTC
Permalink
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
Post by Yevgeny Lavrov
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
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
Exynos5422 # fatload mmc 0 0x48000000 uImage
there are pending interrupts 0x00000001
reading uImage
540242 bytes read
Exynos5422 # bootm 0x48000000
## Booting kernel from Legacy Image at 48000000 ...
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 ...
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
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
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/exynos5422-odroidxu4.dts
<https://raw.githubusercontent.com/torvalds/linux/master/arch/arm/boot/dts/exynos5422-odroidxu4.dts>
Regards
Stefan
Post by Stefan Kalkowski
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'
Post by Stefan Kalkowski
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
RUN_OPT += --include image/uboot
RUN_OPT += --include load/fastboot
RUN_OPT += --load-fastboot-device 'usb:2-1.8'
RUN_OPT += --include log/serial
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
https://genode.org/documentation/genode-foundations-16-05.pdf
<https://genode.org/documentation/genode-foundations-16-05.pdf>
Post by Stefan Kalkowski
In general, it is a good idea to first skim through this document.
Best regards,
Stefan
Post by Yevgeny Lavrov
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
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
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
------------------------------------------------------------------------------
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
_______________________________________________
genode-main mailing list
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
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
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs

https://github.com/skalk · http://genode.org/
Yevgeny Lavrov
2017-01-04 21:46:09 UTC
Permalink
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?

Thanks

On Wed, Jan 4, 2017 at 2:50 AM, Stefan Kalkowski <
Post by Stefan Kalkowski
Hi Yevgeny,
congratulations for the first successful steps. Obviously the UART
configuration is not proper. One potential problem can be the UART
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
repos/base/include/spec/exynos/drivers/uart_base.h:213
Thereby, you leave the UART settings like u-boot configured it.
Regards
Stefan
Post by Yevgeny Lavrov
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
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
Exynos5422 # fatload mmc 0 0x48000000 uImage
there are pending interrupts 0x00000001
reading uImage
540242 bytes read
Exynos5422 # bootm 0x48000000
## Booting kernel from Legacy Image at 48000000 ...
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 ...
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
sorry, I just recognized the SoCs are not fully equal. The first
Odroid
Post by Yevgeny Lavrov
XU, which we are using is Exynos 5410, and your board uses Exynos
5422.
Post by Yevgeny Lavrov
Anyway, I would follow the same approach. Additionally, you can
compare
Post by Yevgeny Lavrov
memory settings and I/O memory settings of the UART within
device-tree
Post by Yevgeny Lavrov
https://raw.githubusercontent.com/torvalds/linux/master/
arch/arm/boot/dts/exynos5410-odroidxu.dts
Post by Yevgeny Lavrov
<https://raw.githubusercontent.com/torvalds/linux/master/arch/
arm/boot/dts/exynos5410-odroidxu.dts>
Post by Yevgeny Lavrov
https://raw.githubusercontent.com/torvalds/linux/master/
arch/arm/boot/dts/exynos5422-odroidxu4.dts
Post by Yevgeny Lavrov
<https://raw.githubusercontent.com/torvalds/linux/master/arch/
arm/boot/dts/exynos5422-odroidxu4.dts>
Post by Yevgeny Lavrov
Regards
Stefan
Post by Stefan Kalkowski
Hello Yevgeny Lavrov,
there is basic support for the Odroid XU regarding Genode's own
kernel
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
(base-hw). I assume you will be able to start various scenarios
that
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
only use CPU, Timers and UART on the Odroid XU4 as well, because
they
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
use the same SoC.
I would start with connecting a UART cable via the GPIO ports to
your
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
home computer, and test whether you can interact with a Linux
system
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
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
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
to use fastboot (via USB) instead.
Finally, you start your Genode development by creating a
'hw_odroid_xu'
Post by Stefan Kalkowski
build directory, add some RUN_OPT variables to the
'etc/build.conf' to
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
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
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
RUN_OPT += --include image/uboot
RUN_OPT += --include load/fastboot
RUN_OPT += --load-fastboot-device 'usb:2-1.8'
RUN_OPT += --include log/serial
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
https://genode.org/documentation/genode-foundations-16-05.pdf
<https://genode.org/documentation/genode-foundations-16-05.pdf>
Post by Stefan Kalkowski
In general, it is a good idea to first skim through this document.
Best regards,
Stefan
Post by Yevgeny Lavrov
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
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
try, but I don't know where to start. Can you please point me in
the
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
right direction so I can find the information that I'll need to
get
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
started this task?
Thanks
------------------------------------------------------------
------------------
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
_______________________________________________
genode-main mailing list
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/
------------------------------------------------------------
------------------
Post by Yevgeny Lavrov
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
------------------------------------------------------------
------------------
Post by Yevgeny Lavrov
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
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
https://lists.sourceforge.net/lists/listinfo/genode-main
Stefan Kalkowski
2017-01-05 08:07:54 UTC
Permalink
Hello,
Post by Yevgeny Lavrov
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
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
Post by Yevgeny Lavrov
Thanks
On Wed, Jan 4, 2017 at 2:50 AM, Stefan Kalkowski
Hi Yevgeny,
congratulations for the first successful steps. Obviously the UART
configuration is not proper. One potential problem can be the UART
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
repos/base/include/spec/exynos/drivers/uart_base.h:213
Thereby, you leave the UART settings like u-boot configured it.
Regards
Stefan
Post by Yevgeny Lavrov
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
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
Post by Yevgeny Lavrov
the first partition of my MicroSD card
2. Connected to Odroid via UART cable, powered it on and
interrupted the
Post by Yevgeny Lavrov
boot sequence
Exynos5422 # fatload mmc 0 0x48000000 uImage
there are pending interrupts 0x00000001
reading uImage
540242 bytes read
Exynos5422 # bootm 0x48000000
## Booting kernel from Legacy Image at 48000000 ...
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 ...
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
sorry, I just recognized the SoCs are not fully equal. The
first Odroid
Post by Yevgeny Lavrov
XU, which we are using is Exynos 5410, and your board uses
Exynos 5422.
Post by Yevgeny Lavrov
Anyway, I would follow the same approach. Additionally, you
can compare
Post by Yevgeny Lavrov
memory settings and I/O memory settings of the UART within
device-tree
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>>
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>>
Post by Yevgeny Lavrov
Regards
Stefan
Post by Stefan Kalkowski
Hello Yevgeny Lavrov,
there is basic support for the Odroid XU regarding Genode's
own kernel
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
(base-hw). I assume you will be able to start various
scenarios that
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
only use CPU, Timers and UART on the Odroid XU4 as well,
because they
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
use the same SoC.
I would start with connecting a UART cable via the GPIO
ports to your
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
home computer, and test whether you can interact with a
Linux system
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
running on top of your test board. After that, you might
play with
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
u-boot until you can successfully boot over network, e.g., a
Linux
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
kernel. Possibly, you cannot even network boot on Odroid
XU4, but have
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
to use fastboot (via USB) instead.
Finally, you start your Genode development by creating a
'hw_odroid_xu'
Post by Stefan Kalkowski
build directory, add some RUN_OPT variables to the
'etc/build.conf' to
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
automatically load the setup and interact with the test board,
corresponding to the method you are using (either network
boot or
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
fastboot). Here is some example for the Odroid variant we
are testing
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
RUN_OPT += --include image/uboot
RUN_OPT += --include load/fastboot
RUN_OPT += --load-fastboot-device 'usb:2-1.8'
RUN_OPT += --include log/serial
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
https://genode.org/documentation/genode-foundations-16-05.pdf
<https://genode.org/documentation/genode-foundations-16-05.pdf>
Post by Yevgeny Lavrov
<https://genode.org/documentation/genode-foundations-16-05.pdf
<https://genode.org/documentation/genode-foundations-16-05.pdf>>
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
In general, it is a good idea to first skim through this
document.
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Best regards,
Stefan
Post by Yevgeny Lavrov
Greetings
I would like to try Genode on Odroid-XU4. I aware that
there's no
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
support available for this ARM device yet. However, I want to
give it a
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
try, but I don't know where to start. Can you please point
me in the
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
right direction so I can find the information that I'll
need to get
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
started this task?
Thanks
------------------------------------------------------------------------------
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>>
Post by Yevgeny Lavrov
--
Stefan Kalkowski
Genode Labs
https://github.com/skalk · http://genode.org/
------------------------------------------------------------------------------
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>>
------------------------------------------------------------------------------
Post by Yevgeny Lavrov
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
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
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
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs

https://github.com/skalk · http://genode.org/
Yevgeny Lavrov
2017-01-20 04:01:03 UTC
Permalink
Thanks for the support. Unfortunately, I must switch platforms. Would it be
possible to repeat the same steps on i.MX6 Sabre Lite?

On Thu, Jan 5, 2017 at 3:07 AM, Stefan Kalkowski <
Post by Stefan Kalkowski
Hello,
Post by Yevgeny Lavrov
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
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
Post by Yevgeny Lavrov
Thanks
On Wed, Jan 4, 2017 at 2:50 AM, Stefan Kalkowski
Hi Yevgeny,
congratulations for the first successful steps. Obviously the UART
configuration is not proper. One potential problem can be the UART
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
Post by Yevgeny Lavrov
use.
Alternatively, you can skip re-configuration of the UART device by
repos/base/include/spec/exynos/drivers/uart_base.h:213
Thereby, you leave the UART settings like u-boot configured it.
Regards
Stefan
Post by Yevgeny Lavrov
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
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
like Network boot and fastboot (Odroid-XU4 doesn't have USB otg
port)
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
are not supported by Odroid-XU4. After creating hw_odroid_xu build
directory, adding suggested RUN_OPT to build.conf file and
executing
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
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
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
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
Post by Yevgeny Lavrov
the first partition of my MicroSD card
2. Connected to Odroid via UART cable, powered it on and
interrupted the
Post by Yevgeny Lavrov
boot sequence
Exynos5422 # fatload mmc 0 0x48000000 uImage
there are pending interrupts 0x00000001
reading uImage
540242 bytes read
Exynos5422 # bootm 0x48000000
## Booting kernel from Legacy Image at 48000000 ...
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 ...
@ᅵᅵ@v@ᅵᅵ
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
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
sorry, I just recognized the SoCs are not fully equal. The
first Odroid
Post by Yevgeny Lavrov
XU, which we are using is Exynos 5410, and your board uses
Exynos 5422.
Post by Yevgeny Lavrov
Anyway, I would follow the same approach. Additionally, you
can compare
Post by Yevgeny Lavrov
memory settings and I/O memory settings of the UART within
device-tree
https://raw.githubusercontent.com/torvalds/linux/master/
arch/arm/boot/dts/exynos5410-odroidxu.dts
Post by Yevgeny Lavrov
<https://raw.githubusercontent.com/torvalds/linux/master/arch/
arm/boot/dts/exynos5410-odroidxu.dts>
Post by Yevgeny Lavrov
<https://raw.githubusercontent.com/torvalds/linux/master/arch/
arm/boot/dts/exynos5410-odroidxu.dts
Post by Yevgeny Lavrov
<https://raw.githubusercontent.com/torvalds/linux/master/arch/
arm/boot/dts/exynos5410-odroidxu.dts>>
Post by Yevgeny Lavrov
https://raw.githubusercontent.com/torvalds/linux/master/
arch/arm/boot/dts/exynos5422-odroidxu4.dts
Post by Yevgeny Lavrov
<https://raw.githubusercontent.com/torvalds/linux/master/arch/
arm/boot/dts/exynos5422-odroidxu4.dts>
Post by Yevgeny Lavrov
<https://raw.githubusercontent.com/torvalds/linux/master/arch/
arm/boot/dts/exynos5422-odroidxu4.dts
Post by Yevgeny Lavrov
<https://raw.githubusercontent.com/torvalds/linux/master/arch/
arm/boot/dts/exynos5422-odroidxu4.dts>>
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
Regards
Stefan
Post by Stefan Kalkowski
Hello Yevgeny Lavrov,
there is basic support for the Odroid XU regarding Genode's
own kernel
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
(base-hw). I assume you will be able to start various
scenarios that
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
only use CPU, Timers and UART on the Odroid XU4 as well,
because they
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
use the same SoC.
I would start with connecting a UART cable via the GPIO
ports to your
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
home computer, and test whether you can interact with a
Linux system
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
running on top of your test board. After that, you might
play with
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
u-boot until you can successfully boot over network, e.g., a
Linux
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
kernel. Possibly, you cannot even network boot on Odroid
XU4, but have
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
to use fastboot (via USB) instead.
Finally, you start your Genode development by creating a
'hw_odroid_xu'
Post by Stefan Kalkowski
build directory, add some RUN_OPT variables to the
'etc/build.conf' to
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
automatically load the setup and interact with the test
board,
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
corresponding to the method you are using (either network
boot or
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
fastboot). Here is some example for the Odroid variant we
are testing
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
RUN_OPT += --include image/uboot
RUN_OPT += --include load/fastboot
RUN_OPT += --load-fastboot-device 'usb:2-1.8'
RUN_OPT += --include log/serial
make run/log
and wait, whether you get some output, and if the test
succeeds.
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
For a general introduction to the build environment and
run-script
https://genode.org/documentation/genode-foundations-16-05.pdf
<https://genode.org/documentation/genode-foundations-16-05.pdf>
Post by Yevgeny Lavrov
<https://genode.org/documentation/genode-foundations-16-05.pdf
<https://genode.org/documentation/genode-foundations-16-05.pdf>>
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
In general, it is a good idea to first skim through this
document.
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Best regards,
Stefan
Post by Yevgeny Lavrov
Greetings
I would like to try Genode on Odroid-XU4. I aware that
there's no
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
support available for this ARM device yet. However, I want
to
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
give it a
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
try, but I don't know where to start. Can you please point
me in the
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
right direction so I can find the information that I'll
need to get
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
started this task?
Thanks
------------------------------------------------------------
------------------
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>>
Post by Yevgeny Lavrov
--
Stefan Kalkowski
Genode Labs
https://github.com/skalk · http://genode.org/
------------------------------------------------------------
------------------
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>>
------------------------------------------------------------
------------------
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
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
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/
------------------------------------------------------------
------------------
Post by Yevgeny Lavrov
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
https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
------------------------------------------------------------
------------------
Post by Yevgeny Lavrov
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
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
https://lists.sourceforge.net/lists/listinfo/genode-main
Stefan Kalkowski
2017-01-24 09:17:19 UTC
Permalink
Hi,
Post by Yevgeny Lavrov
Thanks for the support. Unfortunately, I must switch platforms. Would it
be possible to repeat the same steps on i.MX6 Sabre Lite?
Sure it is. Fortunately, we already have very basic support for the
i.MX6 SoC. Therefore, enabling the Sabre Lite is pretty much simpler, as
it will only differ slightly from the already defined i.MX6 based
Wandboard. Moreover, we currently plan to extend support for i.MX6. The
first step is already part of an issue branch:

https://github.com/skalk/genode/tree/issue%232253

Best regards
Stefan
Post by Yevgeny Lavrov
On Thu, Jan 5, 2017 at 3:07 AM, Stefan Kalkowski
Hello,
Post by Yevgeny Lavrov
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
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
Post by Yevgeny Lavrov
Thanks
On Wed, Jan 4, 2017 at 2:50 AM, Stefan Kalkowski
Hi Yevgeny,
congratulations for the first successful steps. Obviously the UART
configuration is not proper. One potential problem can be the UART
The reference clock's value is used to calculate the settings
for the
Post by Yevgeny Lavrov
appropriated baudrate. Are you using the baudrate 115200 in
your UART
Post by Yevgeny Lavrov
terminal? Because this is the baudrate the kernel configures
the UART to
Post by Yevgeny Lavrov
use.
Alternatively, you can skip re-configuration of the UART device by
repos/base/include/spec/exynos/drivers/uart_base.h:213
Thereby, you leave the UART settings like u-boot configured it.
Regards
Stefan
Post by Yevgeny Lavrov
Hello
I've followed all the steps suggested above. There were no
problems
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
interacting with Linux system on test board via UART cable.
It looks
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
like Network boot and fastboot (Odroid-XU4 doesn't have USB
otg port)
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
are not supported by Odroid-XU4. After creating hw_odroid_xu
build
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
directory, adding suggested RUN_OPT to build.conf file and
executing
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
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
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
fastboot devices -l* returned no results. Probably the
reason for this
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
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
Post by Yevgeny Lavrov
the first partition of my MicroSD card
2. Connected to Odroid via UART cable, powered it on and
interrupted the
Post by Yevgeny Lavrov
boot sequence
Exynos5422 # fatload mmc 0 0x48000000 uImage
there are pending interrupts 0x00000001
reading uImage
540242 bytes read
Exynos5422 # bootm 0x48000000
## Booting kernel from Legacy Image at 48000000 ...
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 ...
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
sorry, I just recognized the SoCs are not fully equal. The
first Odroid
Post by Yevgeny Lavrov
XU, which we are using is Exynos 5410, and your board uses
Exynos 5422.
Post by Yevgeny Lavrov
Anyway, I would follow the same approach. Additionally, you
can compare
Post by Yevgeny Lavrov
memory settings and I/O memory settings of the UART within
device-tree
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>>
<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>>>
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>>
<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>>>
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
Regards
Stefan
Post by Stefan Kalkowski
Hello Yevgeny Lavrov,
there is basic support for the Odroid XU regarding
Genode's
Post by Yevgeny Lavrov
own kernel
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
(base-hw). I assume you will be able to start various
scenarios that
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
only use CPU, Timers and UART on the Odroid XU4 as well,
because they
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
use the same SoC.
I would start with connecting a UART cable via the GPIO
ports to your
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
home computer, and test whether you can interact with a
Linux system
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
running on top of your test board. After that, you might
play with
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
u-boot until you can successfully boot over network,
e.g., a
Post by Yevgeny Lavrov
Linux
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
kernel. Possibly, you cannot even network boot on Odroid
XU4, but have
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
to use fastboot (via USB) instead.
Finally, you start your Genode development by creating a
'hw_odroid_xu'
Post by Stefan Kalkowski
build directory, add some RUN_OPT variables to the
'etc/build.conf' to
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
automatically load the setup and interact with the
test board,
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
corresponding to the method you are using (either network
boot or
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
fastboot). Here is some example for the Odroid variant we
are testing
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
RUN_OPT += --include image/uboot
RUN_OPT += --include load/fastboot
RUN_OPT += --load-fastboot-device 'usb:2-1.8'
RUN_OPT += --include log/serial
make run/log
and wait, whether you get some output, and if the test
succeeds.
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
For a general introduction to the build environment and
run-script
https://genode.org/documentation/genode-foundations-16-05.pdf
<https://genode.org/documentation/genode-foundations-16-05.pdf>
Post by Yevgeny Lavrov
<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>
Post by Yevgeny Lavrov
<https://genode.org/documentation/genode-foundations-16-05.pdf
<https://genode.org/documentation/genode-foundations-16-05.pdf>>>
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
In general, it is a good idea to first skim through this
document.
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Best regards,
Stefan
Post by Yevgeny Lavrov
Greetings
I would like to try Genode on Odroid-XU4. I aware that
there's no
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
support available for this ARM device yet. However, I
want to
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
give it a
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
try, but I don't know where to start. Can you please
point
Post by Yevgeny Lavrov
me in the
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
right direction so I can find the information that I'll
need to get
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
started this task?
Thanks
------------------------------------------------------------------------------
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
Post by Stefan Kalkowski
Post by Yevgeny Lavrov
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>>
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>>>
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
--
Stefan Kalkowski
Genode Labs
https://github.com/skalk · http://genode.org/
------------------------------------------------------------------------------
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>>
Post by Yevgeny Lavrov
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>>>
Post by Yevgeny Lavrov
------------------------------------------------------------------------------
Post by Yevgeny Lavrov
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
https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>>
Post by Yevgeny Lavrov
--
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
https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>
Post by Yevgeny Lavrov
<https://lists.sourceforge.net/lists/listinfo/genode-main
<https://lists.sourceforge.net/lists/listinfo/genode-main>>
------------------------------------------------------------------------------
Post by Yevgeny Lavrov
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
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
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
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs

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