Testing xvisor on Freescale i.MX6Q Sabre SD board

383 views
Skip to first unread message

Mahdi Aichouch

unread,
Jun 19, 2015, 5:17:00 AM6/19/15
to xvisor...@googlegroups.com
Hello,

I am new to xvisor.

I tried to run xvisor on a Freescale i.MX6Q Sabre Smart Device board.

I used the available configuration for the Sabrelite board to build xvisor.

I tried to run xvisor on the board by copying the "uvmm.bin" and "vmm-imx6q-sabrelite.dtb"
files manually using "TFTP" by following some instruction from the "docs/arm/sabrelite-bootscript".

When I started xvisor using the uboot "bootm" I did not get any debug message from xvisor.

Below are the instructions that I applied to load xvisor and dtb, followed the early uboot
starting messages.

Could someone tell me if it is possible to use a sabrelite configuration for an i.MX6Q device?

Is it the right way to test xvisor using TFTP?

How should I proceed to build a working configuration for i.MX6Q using TFTP.

Thank you very much in advance.
 
Best regards,

Mahdi


MX6Q SABRESD U-Boot > setenv serverip 10.8.33.17 ; setenv ipaddr 10.8.33.200
MX6Q SABRESD U-Boot > setenv fdt_addr 0x11000000
MX6Q SABRESD U-Boot > setenv fdt_high 0xffffffff
MX6Q SABRESD U-Boot > tftpboot 12000000 vmm-imx6q-sabrelite.dtb
FEC: Link is Up 796d
Using FEC0 device
TFTP from server 10.8.33.17; our IP address is 10.8.33.200
Filename 'vmm-imx6q-sabrelite.dtb'.
Load address: 0x12000000
Loading: #
done
Bytes transferred = 13594 (351a hex)
MX6Q SABRESD U-Boot > tftpboot 10800000 uvmm.bin
FEC: Link is Up 796d
Using FEC0 device
TFTP from server 10.8.33.17; our IP address is 10.8.33.200
Filename 'uvmm.bin'.
Load address: 0x10800000
Loading: #################################################################
         ############################
done
Bytes transferred = 1363888 (14cfb0 hex)
MX6Q SABRESD U-Boot > bootm 10800000 - 12000000
## Booting kernel from Legacy Image at 10800000 ...
   Image Name:   Xvisor
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1363824 Bytes =  1.3 MB
   Load Address: 17800000
   Entry Point:  17800000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...


Anup Patel

unread,
Jun 19, 2015, 6:03:32 AM6/19/15
to Xvisor Devel, Jimmy Durand-wesolowski, Mahdi Aichouch
Hi Mahdi Aichouch,
The 'fdt_addr' is different from 0x12000000. You should tftp DTB to 0x11000000.

I am not sure if this the real problem. Just initial guessing.
@Jimmy,
You insight would be very helpful here.

Regards,
Anup

Mahdi Aichouch

unread,
Jun 19, 2015, 8:50:02 AM6/19/15
to xvisor...@googlegroups.com
Hello Anup,

Thank you much for your answer.

I tried to load DTB using 0x11000000 address, as you suggested.
But it does the same as before.

Here are all the debug message:

U-Boot 2009.08 (Apr 29 2013 - 18:01:51)

CPU: Freescale i.MX6 family TO1.2 at 792 MHz
Thermal sensor with ratio = 186
Temperature:   22 C, calibration data 0x5984fa7d
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock     : 66000000Hz
ipg per clock : 66000000Hz
uart clock    : 80000000Hz
cspi clock    : 60000000Hz
ahb clock     : 132000000Hz
axi clock   : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock     : 528000000Hz
usdhc1 clock  : 198000000Hz
usdhc2 clock  : 198000000Hz
usdhc3 clock  : 198000000Hz
usdhc4 clock  : 198000000Hz
nfc clock     : 24000000Hz
Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [POR ]
Boot Device: SD
I2C:   ready
DRAM:   1 GB
MMC:   FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
In:    serial
Out:   serial
Err:   serial
Found PFUZE100! deviceid=10,revid=11
Net:   got MAC address from IIM: 00:04:9f:02:df:fb
FEC0 [PRIME]
Hit any key to stop autoboot:  0 
MX6Q SABRESD U-Boot > setenv serverip 10.8.33.17 ; setenv ipaddr 10.8.33.200
MX6Q SABRESD U-Boot > setenv fdt_addr 0x11000000
MX6Q SABRESD U-Boot > setenv fdt_high 0xffffffff
MX6Q SABRESD U-Boot > tftpboot 0x11000000 vmm-imx6q-sabrelite.dtb
PHY indentify @ 0x1 = 0x004dd074
FEC: Link is Up 796d
Using FEC0 device
TFTP from server 10.8.33.17; our IP address is 10.8.33.200
Filename 'vmm-imx6q-sabrelite.dtb'.
Load address: 0x11000000
Loading: #
done
Bytes transferred = 13594 (351a hex)
MX6Q SABRESD U-Boot > tftpboot 10800000 uvmm.bin
FEC: Link is Up 796d
Using FEC0 device
TFTP from server 10.8.33.17; our IP address is 10.8.33.200
Filename 'uvmm.bin'.
Load address: 0x10800000
Loading: #################################################################
         ############################
done
Bytes transferred = 1363888 (14cfb0 hex)
MX6Q SABRESD U-Boot > bootm 10800000 - 11000000

Anup Patel

unread,
Jun 19, 2015, 9:18:15 AM6/19/15
to Xvisor Devel
Hi Mahdi Aichouch,
I almost did not notice that your u-boot is not loading DTB.
This can happen if you have u-boot compiled with FDT
disabled or its very old u-boot.

After "bootm" command you should see lines:

## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000

Before you see "Starting kernel ..."

Regards,
Anup

Mahdi Aichouch

unread,
Jun 24, 2015, 9:28:45 AM6/24/15
to xvisor...@googlegroups.com
Hello Anup,

I tried with a recent version of u-boot that is enabled with FDT:

U-Boot 2015.04 (Jun 24 2015 - 13:53:55)

CPU:   Freescale i.MX6Q rev1.2 at 792 MHz
CPU:   Temperature 40 C
Reset cause: POR
Board: MX6-SabreSD
I2C:   ready
DRAM:  1 GiB
PMIC:  PFUZE100 ID=0x10
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2


But I still get the same behavior as before, that is no boot logs from Xvisor 
as shown in messages logs below:

Any idea that might help.

Thank you very much in advance.

Best regards,
Mahdi


=> setenv serverip 10.8.33.17 ; setenv ipaddr 10.8.33.200
=> setenv fdt_addr 0x11000000
=> setenv fdt_high 0xffffffff
=>  tftpboot 0x11000000 vmm-imx6q-sabrelite.dtb
Using FEC device
TFTP from server 10.8.33.17; our IP address is 10.8.33.200
Filename 'vmm-imx6q-sabrelite.dtb'.
Load address: 0x11000000
Loading: #
         737.3 KiB/s
done
Bytes transferred = 13594 (351a hex)
=> tftpboot 10800000 uvmm.bin
Using FEC device
TFTP from server 10.8.33.17; our IP address is 10.8.33.200
Filename 'uvmm.bin'.
Load address: 0x10800000
Loading: #################################################################
         ############################
         7.7 MiB/s
done
Bytes transferred = 1363888 (14cfb0 hex)
=> bootm 10800000 - 11000000
## Booting kernel from Legacy Image at 10800000 ...
   Image Name:   Xvisor
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1363824 Bytes = 1.3 MiB
   Load Address: 17800000
   Entry Point:  17800000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 11000000
   Booting using the fdt blob at 0x11000000
   Loading Kernel Image ... OK
   Using Device Tree in place at 11000000, end 11006519

Starting kernel ...



--
You received this message because you are subscribed to the Google Groups "Xvisor Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xvisor-devel...@googlegroups.com.
Visit this group at http://groups.google.com/group/xvisor-devel.
For more options, visit https://groups.google.com/d/optout.

Jimmy Durand Wesolowski

unread,
Jun 29, 2015, 11:57:39 AM6/29/15
to xvisor...@googlegroups.com
Hi Mahdi,


I am a bit surprised by the size of your Xvisor uImage...
I have just tried to run Xvisor on top of UBoot, with success, as you
can see on the attached the log.

Note that I am using a different Xvisor configuration, and an older version
of UBoot:
U-Boot 2013.04-00316-g1903727 (Jul 23 2013 - 11:01:15).

Can you send me your images, and your Xvisor configuration, so I
can test?
Thank you.


Best Regards,
--
Jimmy Durand Wesolowski
bootlog.txt

Mahdi Aichouch

unread,
Jul 1, 2015, 7:55:18 AM7/1/15
to xvisor...@googlegroups.com
Hi Jimmy,

Please find attached my uvmm.bin and its configuration.

I am suspecting the serial uart configuration. 
On my board the serial uart port available is the first one which corresponds to the mapped memory address  0x02020000.

How could I found out what serial uart Xvisor is using among the 4 available in the imx6q.dtsi configuration file?

Thank you very much for your help.

Best regards,

Mehdi




uvmm.bin
sabrelite-a9.dtb

Jimmy Durand Wesolowski

unread,
Jul 1, 2015, 11:26:20 AM7/1/15
to xvisor...@googlegroups.com
Hi Mahdi,


> Please find attached my uvmm.bin and its configuration.
Thanks.

The problem is that you are using the guest device tree for booting the
board. It is named "vexpress-a9.dtb" in the sabrelite.txt document. It is
built from "tests/arm32/sabrelite-a9/sabrelite-a9.dts".

You should be using the one for the Xvisor configuration. It is named
"one_guest_sabrelite-a9.dtb" in the sabrelite.txt document. It is
built from "arch/arm/board/generic/dts/imx6/sabrelite-a9/
one_guest_sabrelite-a9.dts".
This is built when you run the command "make dtbs".

> How could I found out what serial uart Xvisor is using among the 4 available
> in the imx6q.dtsi configuration file?
This is defined in the device tree, in the "/choosen/console" field.


Best Regards,
--
Jimmy Durand Wesolowski
Linux System Engineer & amateur photographer
OpenWide

Mahdi Aichouch

unread,
Jul 2, 2015, 10:28:19 AM7/2/15
to xvisor...@googlegroups.com
Hello Jimmy,

After the modification of the serial console to 1 in the "arch/arm/board/generic/dts/imx6/sabrelite-a9/sabrelite-a9.dtsi" file.

And using the following u-boot command :

$> setenv serverip 10.8.33.17 ; setenv ipaddr 10.8.33.200 ; tftpboot 0x11000000 one_guest_sabrelite-a9.dtb ; tftpboot 10800000 uvmm.bin ; bootm 10800000 - 11000000

I was able to to run Xvisor on the i.MX6 SDB device.

Now, I would like to run a Linux guest + root file system using TFTP also.

If this is possible and If you have tried this before, could you please
share with us the set of u-boot command to do it.

Many thanks in advance.

Best regards,

Mahdi


Xvisor v0.2.6 (Jun 19 2015 16:39:44)

Initialize Host Address Space
Initialize Heap Management
Initialize PerCPU Areas
Initialize Device Tree
Initialize Host IRQ
Initialize CPU Early
Initialize Board Early
CPU identified as i.MX6Q, silicon rev 0.0
soc_device_register not implemented yet
FIXME: GPC is the secondary interrupt controller behind GIC
i.MX6q clk 157: register failed with -1
i.MX6q clk 158: register failed with -1
i.MX6q clk 159: register failed with -1
i.MX6q clk 175: register failed with -1
Initialize Standard I/O
Initialize Clocksource Manager
Initialize Clockchip Manager
Initialize Hypervisor Timer
Initialize Soft Delay
Initialize Hypervisor Manager
Initialize Hypervisor Scheduler
Initialize Hypervisor Threads
Initialize Inter Processor Interrupts
Initialize Workqueue Framework
Initialize Wallclock Subsystem
Initialize Secondary CPUs
Initialize Hypervisor Load Balancer
Initialize Command Manager
Initialize Device Driver Framework
Initialize Device Emulation Framework
Initialize Character Device Framework
Initialize Hypervisor Modules
Initialize Input Device Framework
Initialize RTC Device Framework
Initialize Frame Buffer Framework
Initialize Block Device Framework
Initialize Network Switch Framework
Initialize Network Port Framework
initrd: no linux,initrd-start/linux,initrd-end attribute
Initialize CPU Final
Initialize Board Final
sram@0x00900000: SRAM pool: 240d KiB @ 0xff880000
gpio@0209c000: gpio_mxc0 registered
gpio@020a4000: gpio_mxc2 registered
gpio@020b4000: gpio_mxc6 registered
iomuxc@020e0000: initialized IMX pinctrl driver
WARNING: spi0.0: found mr25h256, expected sst25vf016b
Found mr25h256 compatible flash device
spi0.0: mr25h256 (32d Kbytes)
spi0.0: mtd
  .name = spi0.0,
  .size = 0x8000 (0MiB)
  .erasesize = 0x00008000 (32KiB)
  .numeraseregions = 0
ecspi@0200c000: device is disabled
ecspi@02010000: device is disabled
ecspi@02014000: device is disabled
ecspi@02018000: device is dis��led
ipu@02400000: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
ipu@02800000: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
fb@0: register mxc display driver ldb
WARNING: ldb@020e0008: Input pixel format not valid use default RGB666
heap_malloc: Failed to alloc size=1572864 (error -7)
ERROR: fb@0: Unable to allocate framebuffer memory
detected fb_set_par error, error code: -7
ERROR: fb@0: Error fb_set_var ret:-7
CPU0: Online
Brought Up 1 CPUs
Freeing init memory: 124K
Change stdio device to uart1
bootcmd: backlight brightness backlight_lvds 6
Error: unknown command backlight
bootcmd: vfs mount mmc0p0 / 500
Block device mmc0p0 not found
Error: command vfs failed (code -8)
bootcmd: vfs fdt_load /guests guest0 /images/arm32/sabrelite-a9.dtb mem0,physical_size,physsize,0x06000000
Failed to open /images/arm32/sabrelite-a9.dtb
Error: command vfs failed (code -3)
bootcmd: guest create guest0
Error: failed to find guest0 node under /guests
Error: command guest failed (code -1)
bootcmd: vfs guest_load_list guest0 /images/arm32/sabrelite-a9/nor_flash.list
Failed to find guest guest0
Error: command vfs failed (code -3)
bootcmd: guest kick guest0
Failed to find guest
Error: command guest failed (code -3)
bootcmd: vfs umount /
Unmount failed
Error: command vfs failed (code -5)

ooooooo  ooooo oooooo     oooo ooooo  .oooooo..o   .oooooo.   ooooooooo.  
 `8888    d8'   `888.     .8'  `888' d8P'    `Y8  d8P'  `Y8b  `888   `Y88.
   Y888..8P      `888.   .8'    888  Y88bo.      888      888  888   .d88'
    `8888'        `888. .8'     888    `Y8888o.  888      888  888ooo88P' 
   .8PY888.        `888.8'      888        `Y88b 888      888  888`88b.   
  d8'  `888b        `888'       888  oo     .d8P `88b    d88'  888  `88b. 
o888o  o88888o       `8'       o888o 8''88888P'   `Y8bood8P'  o888o  o888o

XVisor# help
help         - displays list of all commands
net          - network commands
flash        - control commands for flash operations
rbd          - ram backed block device commands
fb           - frame buffer commands
input        - input device commands
vscreen      - virtual screen commands
vinput       - virtual input device commands
vdisplay     - virtual display commands
vdisk        - virtual disk commands
module       - module related commands
wallclock    - wall-clock commands
heap         - show heap status
stdio        - standard I/O configuration
chardev      - character device commands
thread       - control commands for threads
memory       - memory manipulation commands
guest        - control commands for guest
vcpu         - control commands for vcpu
devtree      - traverse the device tree
host         - host information
shutdown     - shutdown hypervisor
reset        - reset hypervisor
version      - show version of hypervisor
vserial      - virtual serial port commands
blockdev     - block device commands
rtcdev       - rtc device commands
vfs          - vfs related commands
imx6         - control commands for imx6
XVisor# memory
Usage:    memory help
   memory dump8    <phys_addr> <count>
   memory dump16   <phys_addr> <count>
   memory dump32   <phys_addr> <count>
   memory crc32    <phys_addr> <count>
   memory modify8  <phys_addr> <val0> <val1> ...
   memory modify16 <phys_addr> <val0> <val1> ...
   memory modify32 <phys_addr> <val0> <val1> ...
   memory copy     <phys_addr> <src_phys_addr> <byte_count>
Error: command memory failed (code -1)
XVisor# 


Reply all
Reply to author
Forward
0 new messages