Needless to say, the availability of the in-kernel serial driver breaks 
isolation, which is why it is only included in the debugging version.

Gernot

On 19 Apr 2016, at 10:16 , Alexander Kroh 
<[email protected]<mailto:[email protected]>> wrote:

Hi Oak,

The main difference between debug and release builds is the presence of the 
serial driver in the kernel and the ability of the kernel to print useful 
debugging information to the serial port. We use the kernel serial driver for 
user space applications in debug builds because it is available immediately; we 
can print to the console even if the user space serial driver has not yet been 
initialised.

These files implement the exynos serial driver:
libs/libplatsupport/plat_include/exynos5/platsupport/plat/serial.h
libs/libplatsupport/src/mach/exynos/serial.c (clock configuration on line 386)

 - Alex


________________________________
From: Norrathep Rattanavipanon [[email protected]<mailto:[email protected]>]
Sent: Tuesday, 19 April 2016 05:47
To: Alexander Kroh
Cc: [email protected]<mailto:[email protected]>; GTS; El Defrawy, Karim M
Subject: Re: [seL4] Problem porting sel4 into XU4

Thanks Alex. it works now :D
I got this at the end:

162/162 tests passed.
All is well in the universe.


Ignoring call to sys_exit_group
Ignoring call to sys_rt_sigprocmask
Ignoring call to sys_gettid
sys_tkill assuming self kill

so the only difference between "build the kernel with debug support" and 
"release build" is user space apps use the kernel's serial driver?

And can you point me to the code for user app's serial driver?

Best,
Oak


On Sun, Apr 17, 2016 at 6:32 PM, Alexander Kroh 
<[email protected]<mailto:[email protected]>> wrote:
Hi Oak,

Forgive me for making assumptions about your experience.


It looks like the XU4 SoC (5422) is very similar to the XU (5410). The seL4 
serial port drivers should be compatible. This is also supported by the fact 
that the elfloader seems to be able to use the XU serial driver successfully.


The garbage that you see is generally caused by a bad pointer (sending random 
data to the serial driver) or the result of improper baud rate configuration in 
the serial port driver. The elf loader and kernel (when built in debug mode) 
rely on u-boot for serial port initialisation and baud rate configuration, 
however, the user space driver does not. The user space driver makes no 
assumption about the initial state of the serial port and will attempt to 
(re)configure the baud rate. Unfortunately, the serial driver does make 
assumptions about other system components such as the frequency of the clock 
that drives the serial port. The frequency of this clock can vary between SoC 
and also between U-Boot versions.

The easiest way forward for you is to ensure that the kernel is being built in 
debug mode. This will result in the kernel serial driver being used for user 
space applications. The kernel serial driver does not reconfigure the baud rate:
Run "make menuconfig"
Navigate to     -> seL4 Kernel -> Build Options
Choose "Build type" and select "Build the kernel with debug support"
Navigate back to the main menu and then -> seL4 Libraries  -> libsel4platsupport
Select "Redirect putchar() to seL4_DebugPutchar()"
Run "make"

Let me know how you go

 - AlexK

________________________________________
From: Norrathep Rattanavipanon [[email protected]<mailto:[email protected]>]
Sent: Friday, 15 April 2016 13:55
To: Alexander Kroh
Cc: [email protected]<mailto:[email protected]>; GTS; El Defrawy, Karim M
Subject: Re: [seL4] Problem porting sel4 into XU4

Hi Alex,

Thanks for your reply. I'm not really familiar with serial port. How can I tell 
if the config 
inhttps://github.com/seL4/seL4/blob/master/src/plat/exynos_common/io.c needs 
changes?

This is the serial cable I'm using:
http://odroid.com/dokuwiki/lib/exe/fetch.php?cache=&media=en:others:usb_uart_for_odroid.png
http://odroid.com/dokuwiki/doku.php?id=en:usb_uart_kit

Best,
Oak


On Thu, Apr 14, 2016 at 5:23 PM, Alexander Kroh 
<[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>>
 wrote:
Hi Oak,

Assuming that you are building a debug version of the kernel, the next line 
that should be printed is "Bootstrapping kernel".

Are any changes required for the serial port driver?
https://github.com/seL4/seL4/blob/master/src/plat/exynos_common/io.c

 - Alex


________________________________________
From: Devel [[email protected]<mailto:[email protected]>] on 
behalf of Norrathep Rattanavipanon 
[[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>]
Sent: Friday, 15 April 2016 04:39
To: [email protected]<mailto:[email protected]>
Cc: GTS; El Defrawy, Karim M
Subject: [seL4] Problem porting sel4 into XU4

Hi,

I'm trying to port sel4 into ODROID-XU4 by following the wiki 
(https://wiki.sel4.systems/Hardware/odriod-XU).

So far I can successfully enable HYP mode as indicated by
[    0.198398] [c0] CPU: All CPU(s) started in HYP mode.
[    0.198433] [c0] CPU: Virtualization extensions available.

as well as generate sel4test-driver-image-arm-exynos5 image.

However, we cant do fastboot in XU4 since it doesnt have usb otg.
Thus, I followed booting from sd card from 
https://wiki.sel4.systems/Hardware/General-ARMand copied the image into the 
first partition of sd card and do the following:

Exynos5422 # fatload mmc 0 0x48000000 sel4test-driver-image-arm-exynos5
Exynos5422 # bootelf 0x48000000

and here's the output:

## Starting application at 0x41000000 ...

ELF-loader started on CPU: ARM Ltd. Cortex-A7 r0p3

Switching CPU...

ELF-loader started on CPU: ARM Ltd. Cortex-A15 r2p3
  paddr=[41000000..4126401f]
ELF-loading image 'kernel'
  paddr=[40000000..4002dfff]
  vaddr=[e0000000..e002dfff]
  virt_entry=e0000000
ELF-loading image 'sel4test-driver'
  paddr=[4002e000..40388fff]
  vaddr=[8000..362fff]
  virt_entry=13868
Enabling hypervisor MMU and paging
Enabling MMU and paging
Jumping to kernel-image entry point...

�⧹I� AIq9 Fy   6        1)�a &I99)� 6�   Yq��摦P�^б�� F��^/A�yyyyyyyyy    �Y    
�)aay ���XY�ǡ yQ) �q��O�a@     Ia)! Fy  aay    �) ��XY������ ��.6I�) & 
FvF�6fF�����VƑ�y�  �P�)aay ���XY�ǡ yQ) �q��O�a@  Ia

Is it expected? or am I doing something wrong? Any help would be appreciated.

Best,

--
Norrathep (Oak) Rattanavipanon
M.S. in Computer Science
University of California - Irvine

________________________________

The information in this e-mail may be confidential and subject to legal 
professional privilege and/or copyright. National ICT Australia Limited accepts 
no liability for any damage caused by this email or its attachments.



--
Norrathep (Oak) Rattanavipanon
M.S. in Computer Science
University of California - Irvine



--
Norrathep (Oak) Rattanavipanon
M.S. in Computer Science
University of California - Irvine
_______________________________________________
Devel mailing list
[email protected]<mailto:[email protected]>
https://sel4.systems/lists/listinfo/devel

_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to