Hello to everyone,
I have a Freescale i.MX 6 ARM Cortex A9 Sabre SD board. I would like to test the Hello World example using the generated bootstrap.elf binary. I compiled the fiasco kernel and the l4re framework for the i.MX 6 ARM Cortex-A9 using the menu configuration in both cases.
Instead of using an SD card to run the binary on the board, I would like to flash the RAM with the binary using the DSTREAM JTAG device and the ARM DS-5 IDE.
I connected the board to my host using the mini-usb to serial cable, and I used minicom tool as a serial terminal.
I tried to run the binary using the DS-5 debugger while the board is connected through JTAG, but I didn't see any debug message on the serial terminal.
The source code I am using is from the "l4re-snapshot-2014092821".
My questions:
1) Does anyone tried to run and debug fiasco kernel + l4re on a board using a JTAG device? What are the steps that I am missing? 2) The debug tool print a message saying that "WARNING(IMG53): bootstrap.elf has no source level debug information", what are the options required to include these information compiling the fiasco kernel + l4re?
Thank you very much in advance.
Best regards, Mehdi
PS: screenshot of the IDE debugger view
Hi,
On Fri Nov 14, 2014 at 15:33:50 +0100, Mahdi Aichouch wrote:
I have a Freescale i.MX 6 ARM Cortex A9 Sabre SD board. I would like to test the Hello World example using the generated bootstrap.elf binary. I compiled the fiasco kernel and the l4re framework for the i.MX 6 ARM Cortex-A9 using the menu configuration in both cases.
Instead of using an SD card to run the binary on the board, I would like to flash the RAM with the binary using the DSTREAM JTAG device and the ARM DS-5 IDE.
I connected the board to my host using the mini-usb to serial cable, and I used minicom tool as a serial terminal.
I tried to run the binary using the DS-5 debugger while the board is connected through JTAG, but I didn't see any debug message on the serial terminal.
Is it working when you boot via SD card or tftp?
The source code I am using is from the "l4re-snapshot-2014092821".
My questions:
- Does anyone tried to run and debug fiasco kernel + l4re on a board using
a JTAG device? What are the steps that I am missing?
I've done it, however not with this particular board. I don't really think there could be anything missing. The info on the screenshot looks ok, the disassembly shows what it has to show. Did it stop itself? Or does it run and just no output? When you let it run a few seconds and stop it again, at which PC is it? Maybe just the wrong UART? UART2 is the default, UART1 would be PLATFORM_UART_NR=1
- The debug tool print a message saying that "WARNING(IMG53):
bootstrap.elf has no source level debug information", what are the options required to include these information compiling the fiasco kernel + l4re?
Add BOOTSTRAP_NO_STRIP=y when building the image (you can also put it into your l4/conf/Makeconf.boot).
Adam
Hello Adam,
Thank you very much for your answer.
I didn't tried yet using an SD card or tftp. I am interested in testing it using tftp, is there any guide showing how to setup a working configuration on my development machine?
I compiled the kernel using this command line: $> make BOOTSTRAP_NO_STRIP=y PLATFORM_UART_NR=1
Now the debugger is not complaining. I have the debug information and I can also see the source code (as shown in the attached screenshot).
But I still not get the debug information from the kernel in the minicom serial terminal. I did a step by step walk through the code, the attached file shows all the debug information that I get.
Do I used the PLATFORM_UART_NR=1 option correctly, what verification should I do also?
Thank you very much in advance.
Best regards,
On Sat, Nov 15, 2014 at 10:00 PM, Adam Lackorzynski < adam@os.inf.tu-dresden.de> wrote:
Hi,
On Fri Nov 14, 2014 at 15:33:50 +0100, Mahdi Aichouch wrote:
I have a Freescale i.MX 6 ARM Cortex A9 Sabre SD board. I would like to test the Hello World example using the generated bootstrap.elf binary. I compiled the fiasco kernel and the l4re framework for the i.MX 6 ARM Cortex-A9 using the menu configuration in both cases.
Instead of using an SD card to run the binary on the board, I would like
to
flash the RAM with the binary using the DSTREAM JTAG device and the ARM DS-5 IDE.
I connected the board to my host using the mini-usb to serial cable, and
I
used minicom tool as a serial terminal.
I tried to run the binary using the DS-5 debugger while the board is connected through JTAG, but I didn't see any debug message on the serial terminal.
Is it working when you boot via SD card or tftp?
The source code I am using is from the "l4re-snapshot-2014092821".
My questions:
- Does anyone tried to run and debug fiasco kernel + l4re on a board
using
a JTAG device? What are the steps that I am missing?
I've done it, however not with this particular board. I don't really think there could be anything missing. The info on the screenshot looks ok, the disassembly shows what it has to show. Did it stop itself? Or does it run and just no output? When you let it run a few seconds and stop it again, at which PC is it? Maybe just the wrong UART? UART2 is the default, UART1 would be PLATFORM_UART_NR=1
- The debug tool print a message saying that "WARNING(IMG53):
bootstrap.elf has no source level debug information", what are the
options
required to include these information compiling the fiasco kernel + l4re?
Add BOOTSTRAP_NO_STRIP=y when building the image (you can also put it into your l4/conf/Makeconf.boot).
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
Hi,
On Mon Nov 17, 2014 at 11:39:06 +0100, Mahdi Aichouch wrote:
I didn't tried yet using an SD card or tftp. I am interested in testing it using tftp, is there any guide showing how to setup a working configuration on my development machine?
There should be quite a few out there. In short: You need a tftpserver on some other system. Then use in u-boot (for example): dhcp; tftpboot 0x11000000 /path/to/bootstrap.raw; go 0x11000000
Do not use a gigabit switch, just 100M, at least it made a difference between not working and working for me.
I compiled the kernel using this command line: $> make BOOTSTRAP_NO_STRIP=y PLATFORM_UART_NR=1
Now the debugger is not complaining. I have the debug information and I can also see the source code (as shown in the attached screenshot).
It is sitting in the pl011 UART driver. Now that's the wrong one. Looks like wrong platform. Better with: make BOOTSTRAP_NO_STRIP=y PLATFORM_TYPE=imx6 ? The platform type can also be set in the l4re config, or put PLATFORM_TYPE=imx6 into l4/conf/Makeconf.boot.
But I still not get the debug information from the kernel in the minicom serial terminal. I did a step by step walk through the code, the attached file shows all the debug information that I get.
Do I used the PLATFORM_UART_NR=1 option correctly, what verification should I do also?
PLATFORM_UART_NR=1 might still be valid depending on which UART is used.
Adam
Hello Adam,
I used this command line to compile the fiasco kernel and l4re.
$> make -j 4 BOOTSTRAP_NO_STRIP=y PLATFORM_TYPE=imx6 PLATFORM_UART_NR=1
I also added all these options to the src/l4/conf/Makeconf.boot
But when I debug bootstrap_hello.elf binary, I still see that the uart_pl011.c that is used.
As we can see in the attached config.all file the platform type is configured to i.mx6
Do you have any idea.
Thank you very much. Best regards,
On Mon, Nov 17, 2014 at 11:39 AM, Mahdi Aichouch foxmehdi@gmail.com wrote:
Hello Adam,
Thank you very much for your answer.
I didn't tried yet using an SD card or tftp. I am interested in testing it using tftp, is there any guide showing how to setup a working configuration on my development machine?
I compiled the kernel using this command line: $> make BOOTSTRAP_NO_STRIP=y PLATFORM_UART_NR=1
Now the debugger is not complaining. I have the debug information and I can also see the source code (as shown in the attached screenshot).
But I still not get the debug information from the kernel in the minicom serial terminal. I did a step by step walk through the code, the attached file shows all the debug information that I get.
Do I used the PLATFORM_UART_NR=1 option correctly, what verification should I do also?
Thank you very much in advance.
Best regards,
On Sat, Nov 15, 2014 at 10:00 PM, Adam Lackorzynski < adam@os.inf.tu-dresden.de> wrote:
Hi,
On Fri Nov 14, 2014 at 15:33:50 +0100, Mahdi Aichouch wrote:
I have a Freescale i.MX 6 ARM Cortex A9 Sabre SD board. I would like to test the Hello World example using the generated bootstrap.elf binary. I compiled the fiasco kernel and the l4re framework for the i.MX 6 ARM Cortex-A9 using the menu configuration in both cases.
Instead of using an SD card to run the binary on the board, I would
like to
flash the RAM with the binary using the DSTREAM JTAG device and the ARM DS-5 IDE.
I connected the board to my host using the mini-usb to serial cable,
and I
used minicom tool as a serial terminal.
I tried to run the binary using the DS-5 debugger while the board is connected through JTAG, but I didn't see any debug message on the serial terminal.
Is it working when you boot via SD card or tftp?
The source code I am using is from the "l4re-snapshot-2014092821".
My questions:
- Does anyone tried to run and debug fiasco kernel + l4re on a board
using
a JTAG device? What are the steps that I am missing?
I've done it, however not with this particular board. I don't really think there could be anything missing. The info on the screenshot looks ok, the disassembly shows what it has to show. Did it stop itself? Or does it run and just no output? When you let it run a few seconds and stop it again, at which PC is it? Maybe just the wrong UART? UART2 is the default, UART1 would be PLATFORM_UART_NR=1
- The debug tool print a message saying that "WARNING(IMG53):
bootstrap.elf has no source level debug information", what are the
options
required to include these information compiling the fiasco kernel +
l4re?
Add BOOTSTRAP_NO_STRIP=y when building the image (you can also put it into your l4/conf/Makeconf.boot).
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
Hi,
On Tue Nov 18, 2014 at 18:55:11 +0100, Mahdi Aichouch wrote:
I used this command line to compile the fiasco kernel and l4re.
$> make -j 4 BOOTSTRAP_NO_STRIP=y PLATFORM_TYPE=imx6 PLATFORM_UART_NR=1
I also added all these options to the src/l4/conf/Makeconf.boot
But when I debug bootstrap_hello.elf binary, I still see that the uart_pl011.c that is used.
All the parameters are only relevant when building the image, i.e. in the l4re build root directory do: make elfimage E=hello BOOTSTRAP_NO_STRIP=y PLATFORM_TYPE=imx6 PLATFORM_UART_NR=1 That will generate images/bootstrap.elf (among others, check 'make help' for other targets).
When the build of the image scrolls by, closely watch which platform/xxx.o is built. It should be platform/imx.o in your case. If it's a different one, something with the platform selection is wrong.
Adam
Am 18.11.2014 um 18:55 schrieb Mahdi Aichouch:
Hello Adam,
I used this command line to compile the fiasco kernel and l4re.
$> make -j 4 BOOTSTRAP_NO_STRIP=y PLATFORM_TYPE=imx6 PLATFORM_UART_NR=1
I also added all these options to the src/l4/conf/Makeconf.boot
But when I debug bootstrap_hello.elf binary, I still see that the uart_pl011.c that is used.
As we can see in the attached config.all file the platform type is configured to i.mx6
Do you have any idea.
Thank you very much. Best regards,
You should check this http://os.inf.tu-dresden.de/pipermail/l4-hackers/2014/006298.html
and also have a look into this thread http://os.inf.tu-dresden.de/pipermail/l4-hackers/2014/006463.html
Martin
Hi, I got a 404 error : The file you're looking for has been moved or deleted.
When I tried to access:
https://www.dropbox.com/s/abj9ao5uk9r3w72/The_Guide_to_access_HW_on_L4Linux_...
On Wed, Nov 19, 2014 at 6:20 AM, Martin Schröder < martin.schroeder@openlimit.com> wrote:
Am 18.11.2014 um 18:55 schrieb Mahdi Aichouch:
Hello Adam,
I used this command line to compile the fiasco kernel and l4re.
$> make -j 4 BOOTSTRAP_NO_STRIP=y PLATFORM_TYPE=imx6 PLATFORM_UART_NR=1
I also added all these options to the src/l4/conf/Makeconf.boot
But when I debug bootstrap_hello.elf binary, I still see that the uart_pl011.c that is used.
As we can see in the attached config.all file the platform type is configured to i.mx6
Do you have any idea.
Thank you very much. Best regards,
You should check this http://os.inf.tu-dresden.de/pipermail/l4-hackers/2014/006298.html
and also have a look into this thread http://os.inf.tu-dresden.de/pipermail/l4-hackers/2014/006463.html
Martin
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hello everyone,
Thank you very much Adam and Martin for your answers and help.
I used this command line to compile the l4re.
$> make elfimage E=hello BOOTSTRAP_NO_STRIP=y PLATFORM_TYPE=imx6
Then I verified that the right imx platform file is being used as shown below,
... Generating bootstrap.ld ... Compiling exec.o ... Compiling module.o ... Compiling ARCH-arm/crt0.o ... Compiling region.o ... Compiling startup.o ... Compiling init_kip_f.o ... Compiling libc_support+.o ... Compiling patch.o ... Compiling koptions.o ... Compiling platform_common.o ... Compiling memory.o ... Compiling boot_modules.o ... Compiling platform/imx.o ... Compiling ARCH-arm/reboot.o ... Compiling ARCH-arm/head.o ==> Linking bootstrap.elf ==> Post-processing bootstrap.elf ==> "bootstrap.elf" built ==> Installing bootstrap.elf in image directory ==> Installing bootstrap_hello in image directory Image size(s) in bytes: bootstrap_hello.elf: 1320092 Start address: 0x11000000
However, I tried to debug via JTAG, and I checked that the fiasco kernel and l4re were wroking correctly but I was unable to see anything on the minicom serial console.
I did some investigation in the UART driver code example from the i.MX 6 Platfrom SDK provided by Freescale, where in this case I was able to see the debug message on a serial console and to debug the code step by step via JTAG.
I figured out that the difference between this case and the case of running a l4 fiasco kernel is that there is a set of configurations that are done in the case of the UART driver and not in the l4 fiasco kernel bootstrap.
As we can see in attached files the code of the uart driver rely on a source code that is automatically generated by the IOMUX tool to configure the board. According to the documentation: "this tool frees the device driver design developers from design details of each pin and pad. The source code generated by the tool is used as-is by the SDK."
In the other hand, when the L4-fiasco kernel is started using uboot these peripherals configuration are done. But if the L4-fiasco kernel is started alone these configuration are not.
The problem is that if these configurations are integrated to the fiasco bootstrap, they will be done twice when the kernel is started via uboot: first in uboot and second in the L4-fiasco bootstrap.
Is there any elegant way to deal with this problematic situation?
My second question is related to the test of the hello world example via tftp, as I was able to run l4-fiasco via uboot and tftp and to get the debug message on the serial terminal.
The problem is that after the bootstrap_hello.uimage file is loaded, the kernel starts. Then it is supposed to run the Hello World test example, however, in the trace there is no Hello World scrolling...
Is there something that I am missing?
Thank you very much.
Best regards, Mahdi
MX6Q SABRESD U-Boot > setenv bootfile /var/lib/tftpboot/bootstrap_hello.uimage MX6Q SABRESD U-Boot > tftp FEC: Link is Up 796d Using FEC0 device TFTP from server 10.8.33.17; our IP address is 10.8.33.200 Filename '/var/lib/tftpboot/bootstrap_hello.uimage'. Load address: 0x10800000 Loading: ################################################################# ## done Bytes transferred = 980460 (ef5ec hex) MX6Q SABRESD U-Boot > bootm ## Booting kernel from Legacy Image at 10800000 ... Image Name: L4 Image #22 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 980396 Bytes = 957.4 kB Load Address: 11000000 Entry Point: 11000000 Verifying Checksum ... OK Loading Kernel Image ... OK OK
Starting kernel ...
L4 Bootstrapper Build: #22 Wed Nov 19 13:22:36 CET 2014, 4.8.3 20140320 (prerelease) Scanning up to 1024 MB RAM, starting at offset 32MB Memory size is 1024MB (10000000 - 4fffffff) RAM: 0000000010000000 - 000000004fffffff: 1048576kB Total RAM: 1024MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 5 modules behind 11100000 moving module 02 { 110b5000-110ee63f } -> { 111a5000-111de63f } [235072] moving module 01 { 110ab000-110b438b } -> { 1119b000-111a438b } [37772] moving module 00 { 11044000-110aa64b } -> { 11134000-1119a64b } [419404] moving module 04 { 1102a000-11043597 } -> { 1111a000-11133597 } [103832] moving module 03 { 11010000-11029473 } -> { 11100000-11119473 } [103540] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page at 0x10002000 Regions of list 'regions' [ 10000000, 100000e3] { e4} Root mbi_rt [ 10001000, 10001aff] { b00} Kern fiasco [ 10002000, 10072fff] { 71000} Kern fiasco [ 10090000, 10096edf] { 6ee0} Sigma0 sigma0 [ 10098000, 1009e177] { 6178} Sigma0 sigma0 [ 10140000, 10171d77] { 31d78} Root moe [ 10178000, 101934ab] { 1b4ac} Root moe [ 11000000, 1100f4ff] { f500} Boot bootstrap [ 11100000, 11133fff] { 34000} Root Module API Version: (87) experimental Sigma0 config ip:10090100 sp:00000000 Roottask config ip:10140260 sp:00000000 Starting kernel fiasco at 100012c8
On Tue, Nov 18, 2014 at 6:55 PM, Mahdi Aichouch foxmehdi@gmail.com wrote:
Hello Adam,
I used this command line to compile the fiasco kernel and l4re.
$> make -j 4 BOOTSTRAP_NO_STRIP=y PLATFORM_TYPE=imx6 PLATFORM_UART_NR=1
I also added all these options to the src/l4/conf/Makeconf.boot
But when I debug bootstrap_hello.elf binary, I still see that the uart_pl011.c that is used.
As we can see in the attached config.all file the platform type is configured to i.mx6
Do you have any idea.
Thank you very much. Best regards,
On Mon, Nov 17, 2014 at 11:39 AM, Mahdi Aichouch foxmehdi@gmail.com wrote:
Hello Adam,
Thank you very much for your answer.
I didn't tried yet using an SD card or tftp. I am interested in testing it using tftp, is there any guide showing how to setup a working configuration on my development machine?
I compiled the kernel using this command line: $> make BOOTSTRAP_NO_STRIP=y PLATFORM_UART_NR=1
Now the debugger is not complaining. I have the debug information and I can also see the source code (as shown in the attached screenshot).
But I still not get the debug information from the kernel in the minicom serial terminal. I did a step by step walk through the code, the attached file shows all the debug information that I get.
Do I used the PLATFORM_UART_NR=1 option correctly, what verification should I do also?
Thank you very much in advance.
Best regards,
On Sat, Nov 15, 2014 at 10:00 PM, Adam Lackorzynski < adam@os.inf.tu-dresden.de> wrote:
Hi,
On Fri Nov 14, 2014 at 15:33:50 +0100, Mahdi Aichouch wrote:
I have a Freescale i.MX 6 ARM Cortex A9 Sabre SD board. I would like to test the Hello World example using the generated bootstrap.elf binary. I compiled the fiasco kernel and the l4re framework for the i.MX 6 ARM Cortex-A9 using the menu configuration in both cases.
Instead of using an SD card to run the binary on the board, I would
like to
flash the RAM with the binary using the DSTREAM JTAG device and the ARM DS-5 IDE.
I connected the board to my host using the mini-usb to serial cable,
and I
used minicom tool as a serial terminal.
I tried to run the binary using the DS-5 debugger while the board is connected through JTAG, but I didn't see any debug message on the
serial
terminal.
Is it working when you boot via SD card or tftp?
The source code I am using is from the "l4re-snapshot-2014092821".
My questions:
- Does anyone tried to run and debug fiasco kernel + l4re on a board
using
a JTAG device? What are the steps that I am missing?
I've done it, however not with this particular board. I don't really think there could be anything missing. The info on the screenshot looks ok, the disassembly shows what it has to show. Did it stop itself? Or does it run and just no output? When you let it run a few seconds and stop it again, at which PC is it? Maybe just the wrong UART? UART2 is the default, UART1 would be PLATFORM_UART_NR=1
- The debug tool print a message saying that "WARNING(IMG53):
bootstrap.elf has no source level debug information", what are the
options
required to include these information compiling the fiasco kernel +
l4re?
Add BOOTSTRAP_NO_STRIP=y when building the image (you can also put it into your l4/conf/Makeconf.boot).
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
Hi,
On Thu Nov 20, 2014 at 14:53:23 +0100, Mahdi Aichouch wrote:
However, I tried to debug via JTAG, and I checked that the fiasco kernel and l4re were wroking correctly but I was unable to see anything on the minicom serial console.
I did some investigation in the UART driver code example from the i.MX 6 Platfrom SDK provided by Freescale, where in this case I was able to see the debug message on a serial console and to debug the code step by step via JTAG.
I figured out that the difference between this case and the case of running a l4 fiasco kernel is that there is a set of configurations that are done in the case of the UART driver and not in the l4 fiasco kernel bootstrap.
As we can see in attached files the code of the uart driver rely on a source code that is automatically generated by the IOMUX tool to configure the board. According to the documentation: "this tool frees the device driver design developers from design details of each pin and pad. The source code generated by the tool is used as-is by the SDK."
In the other hand, when the L4-fiasco kernel is started using uboot these peripherals configuration are done. But if the L4-fiasco kernel is started alone these configuration are not.
The problem is that if these configurations are integrated to the fiasco bootstrap, they will be done twice when the kernel is started via uboot: first in uboot and second in the L4-fiasco bootstrap.
Is there any elegant way to deal with this problematic situation?
Hmm, maybe there's a way to detect whether the setup has already been done? Such a setup also seems quite specific for a particular board. But yes, something to consider. Practically I just let u-boot run to its prompt and then stop and load things via JTAG. That typically works.
My second question is related to the test of the hello world example via tftp, as I was able to run l4-fiasco via uboot and tftp and to get the debug message on the serial terminal.
The problem is that after the bootstrap_hello.uimage file is loaded, the kernel starts. Then it is supposed to run the Hello World test example, however, in the trace there is no Hello World scrolling...
Is there something that I am missing?
Fiasco also needs to be configured for UART-1. Go to Fiasco's build directory and change it via 'make config' and rebuild with 'make' in there, then do 'make elfimage ...' again.
Adam
Hello,
Thank very very much Adam for your help.
I tested your practical solution to debug the l4-fiasco via u-boot and JTAG and it worked great! I also tested the configuration of l4-fiasco with UART-1 and it perfectly worked.
Best regards, Mahdi
On Thu, Nov 20, 2014 at 2:53 PM, Mahdi Aichouch foxmehdi@gmail.com wrote:
Hello everyone,
Thank you very much Adam and Martin for your answers and help.
I used this command line to compile the l4re.
$> make elfimage E=hello BOOTSTRAP_NO_STRIP=y PLATFORM_TYPE=imx6
Then I verified that the right imx platform file is being used as shown below,
... Generating bootstrap.ld ... Compiling exec.o ... Compiling module.o ... Compiling ARCH-arm/crt0.o ... Compiling region.o ... Compiling startup.o ... Compiling init_kip_f.o ... Compiling libc_support+.o ... Compiling patch.o ... Compiling koptions.o ... Compiling platform_common.o ... Compiling memory.o ... Compiling boot_modules.o ... Compiling platform/imx.o ... Compiling ARCH-arm/reboot.o ... Compiling ARCH-arm/head.o ==> Linking bootstrap.elf ==> Post-processing bootstrap.elf ==> "bootstrap.elf" built ==> Installing bootstrap.elf in image directory ==> Installing bootstrap_hello in image directory Image size(s) in bytes: bootstrap_hello.elf: 1320092 Start address: 0x11000000
However, I tried to debug via JTAG, and I checked that the fiasco kernel and l4re were wroking correctly but I was unable to see anything on the minicom serial console.
I did some investigation in the UART driver code example from the i.MX 6 Platfrom SDK provided by Freescale, where in this case I was able to see the debug message on a serial console and to debug the code step by step via JTAG.
I figured out that the difference between this case and the case of running a l4 fiasco kernel is that there is a set of configurations that are done in the case of the UART driver and not in the l4 fiasco kernel bootstrap.
As we can see in attached files the code of the uart driver rely on a source code that is automatically generated by the IOMUX tool to configure the board. According to the documentation: "this tool frees the device driver design developers from design details of each pin and pad. The source code generated by the tool is used as-is by the SDK."
In the other hand, when the L4-fiasco kernel is started using uboot these peripherals configuration are done. But if the L4-fiasco kernel is started alone these configuration are not.
The problem is that if these configurations are integrated to the fiasco bootstrap, they will be done twice when the kernel is started via uboot: first in uboot and second in the L4-fiasco bootstrap.
Is there any elegant way to deal with this problematic situation?
My second question is related to the test of the hello world example via tftp, as I was able to run l4-fiasco via uboot and tftp and to get the debug message on the serial terminal.
The problem is that after the bootstrap_hello.uimage file is loaded, the kernel starts. Then it is supposed to run the Hello World test example, however, in the trace there is no Hello World scrolling...
Is there something that I am missing?
Thank you very much.
Best regards, Mahdi
MX6Q SABRESD U-Boot > setenv bootfile /var/lib/tftpboot/bootstrap_hello.uimage MX6Q SABRESD U-Boot > tftp FEC: Link is Up 796d Using FEC0 device TFTP from server 10.8.33.17; our IP address is 10.8.33.200 Filename '/var/lib/tftpboot/bootstrap_hello.uimage'. Load address: 0x10800000 Loading: ################################################################# ## done Bytes transferred = 980460 (ef5ec hex) MX6Q SABRESD U-Boot > bootm ## Booting kernel from Legacy Image at 10800000 ... Image Name: L4 Image #22 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 980396 Bytes = 957.4 kB Load Address: 11000000 Entry Point: 11000000 Verifying Checksum ... OK Loading Kernel Image ... OK OK
Starting kernel ...
L4 Bootstrapper Build: #22 Wed Nov 19 13:22:36 CET 2014, 4.8.3 20140320 (prerelease) Scanning up to 1024 MB RAM, starting at offset 32MB Memory size is 1024MB (10000000 - 4fffffff) RAM: 0000000010000000 - 000000004fffffff: 1048576kB Total RAM: 1024MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 5 modules behind 11100000 moving module 02 { 110b5000-110ee63f } -> { 111a5000-111de63f } [235072] moving module 01 { 110ab000-110b438b } -> { 1119b000-111a438b } [37772] moving module 00 { 11044000-110aa64b } -> { 11134000-1119a64b } [419404] moving module 04 { 1102a000-11043597 } -> { 1111a000-11133597 } [103832] moving module 03 { 11010000-11029473 } -> { 11100000-11119473 } [103540] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page at 0x10002000 Regions of list 'regions' [ 10000000, 100000e3] { e4} Root mbi_rt [ 10001000, 10001aff] { b00} Kern fiasco [ 10002000, 10072fff] { 71000} Kern fiasco [ 10090000, 10096edf] { 6ee0} Sigma0 sigma0 [ 10098000, 1009e177] { 6178} Sigma0 sigma0 [ 10140000, 10171d77] { 31d78} Root moe [ 10178000, 101934ab] { 1b4ac} Root moe [ 11000000, 1100f4ff] { f500} Boot bootstrap [ 11100000, 11133fff] { 34000} Root Module API Version: (87) experimental Sigma0 config ip:10090100 sp:00000000 Roottask config ip:10140260 sp:00000000 Starting kernel fiasco at 100012c8
On Tue, Nov 18, 2014 at 6:55 PM, Mahdi Aichouch foxmehdi@gmail.com wrote:
Hello Adam,
I used this command line to compile the fiasco kernel and l4re.
$> make -j 4 BOOTSTRAP_NO_STRIP=y PLATFORM_TYPE=imx6 PLATFORM_UART_NR=1
I also added all these options to the src/l4/conf/Makeconf.boot
But when I debug bootstrap_hello.elf binary, I still see that the uart_pl011.c that is used.
As we can see in the attached config.all file the platform type is configured to i.mx6
Do you have any idea.
Thank you very much. Best regards,
On Mon, Nov 17, 2014 at 11:39 AM, Mahdi Aichouch foxmehdi@gmail.com wrote:
Hello Adam,
Thank you very much for your answer.
I didn't tried yet using an SD card or tftp. I am interested in testing it using tftp, is there any guide showing how to setup a working configuration on my development machine?
I compiled the kernel using this command line: $> make BOOTSTRAP_NO_STRIP=y PLATFORM_UART_NR=1
Now the debugger is not complaining. I have the debug information and I can also see the source code (as shown in the attached screenshot).
But I still not get the debug information from the kernel in the minicom serial terminal. I did a step by step walk through the code, the attached file shows all the debug information that I get.
Do I used the PLATFORM_UART_NR=1 option correctly, what verification should I do also?
Thank you very much in advance.
Best regards,
On Sat, Nov 15, 2014 at 10:00 PM, Adam Lackorzynski < adam@os.inf.tu-dresden.de> wrote:
Hi,
On Fri Nov 14, 2014 at 15:33:50 +0100, Mahdi Aichouch wrote:
I have a Freescale i.MX 6 ARM Cortex A9 Sabre SD board. I would like to test the Hello World example using the generated bootstrap.elf binary. I compiled the fiasco kernel and the l4re framework for the i.MX 6 ARM Cortex-A9 using the menu configuration in both cases.
Instead of using an SD card to run the binary on the board, I would
like to
flash the RAM with the binary using the DSTREAM JTAG device and the
ARM
DS-5 IDE.
I connected the board to my host using the mini-usb to serial cable,
and I
used minicom tool as a serial terminal.
I tried to run the binary using the DS-5 debugger while the board is connected through JTAG, but I didn't see any debug message on the
serial
terminal.
Is it working when you boot via SD card or tftp?
The source code I am using is from the "l4re-snapshot-2014092821".
My questions:
- Does anyone tried to run and debug fiasco kernel + l4re on a board
using
a JTAG device? What are the steps that I am missing?
I've done it, however not with this particular board. I don't really think there could be anything missing. The info on the screenshot looks ok, the disassembly shows what it has to show. Did it stop itself? Or does it run and just no output? When you let it run a few seconds and stop it again, at which PC is it? Maybe just the wrong UART? UART2 is the default, UART1 would be PLATFORM_UART_NR=1
- The debug tool print a message saying that "WARNING(IMG53):
bootstrap.elf has no source level debug information", what are the
options
required to include these information compiling the fiasco kernel +
l4re?
Add BOOTSTRAP_NO_STRIP=y when building the image (you can also put it into your l4/conf/Makeconf.boot).
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers@os.inf.tu-dresden.de