RTEMS booting problem for PICO-PI-IMX7 board.

JunBeom Kim (EmbedCoreTech) jbkim at e-coretech.kr
Tue Apr 10 05:00:47 UTC 2018

Dear Sir,

I found additional point.

If I use below modified code only even though there is not stdout-path in dtb file, UART5 will be used for debug console.

static imx_uart_context *imx_uart_console = &imx_uart_instances[4];

all UART instances information(base, regs, irq, etc) is restored by imx_uart_probe() function.

Is it correct ?

Best Regards,
JunBeom Kim

-----Original Message-----
From: JunBeom Kim (EmbedCoreTech) <jbkim at e-coretech.kr> 
Sent: Tuesday, April 10, 2018 10:51 AM
To: 'users at rtems.org' <users at rtems.org>
Subject: RTEMS booting problem for PICO-PI-IMX7 board.

Dear Sir,

Is there RTEMS users for running RTEMS for PICO-PI-IMX7 board ?

I purchased PICO-PI-IMX7 from Wanboard.

I am tring to test RTEMS on PICO-PI-IMX7 using RTEMS current version for i.MX7D SDB board.

On referencing, when I check PICO-PI-IMX7 board, there is u-boot only.
Also, there is eMMC memory only. (It was headache in first) Therefore, I needed additional work for writing your modified u-boot and/or for preparing RTEMS image FAT32 storage. Additional work means that u-boot writing by dd command and eMMC partition configuration by fdisk command after Linux kernel is booting.

At this time, I removed Linux kernel image on eMMC storage and I am ready to test RTEMS image only.
Also, If user use "ums 0 mmc 0" command in u-boot, user can replace RTEMS image and dtb file easily on PC(Windows or Linux Desktop).

As I check difference between PICO-PI-IMX7 and i.MX7D SDB, UART debug port number is different.
 - PICO-PI-IMX7 : UART5 (serial4)
 - i.MX7D SDB : UART1 (serial0)

After I check current RTEMS bsp source, I modified console-config.c due to UART port number change in below;

< Original code : for UART1 debug port > static imx_uart_context imx_uart_instances[7]; static imx_uart_context *imx_uart_console = &imx_uart_instances[0];

< Modified code : for UART5 debug port > static imx_uart_context imx_uart_instances[7]; static imx_uart_context *imx_uart_console = &imx_uart_instances[4];

Even though I modified this, there is not any output after running RTEMS.

I am checking UART configuration by FDT.

As I check imx_uart_probe() function of console-config.c, there is "chosen" and "stdout-path" keyword in below;

static void imx_uart_probe(void)
  const void *fdt;
  int node;
  int offset;
  const char *console;
  size_t i;

  fdt = bsp_fdt_get();
  node = fdt_path_offset(fdt, "/chosen");

  console = fdt_getprop(fdt, node, "stdout-path", NULL);
  if (console == NULL) {
    console = "";

I think that there should be declaration for "stdout-path" of "chosen" area in dts(including dtsi) source file.

As I check dts files on lastest Linux kernel for both i.MX7D SDB and PICO-IMX7, there is not "stdout-path" information of "chosen".

I attached files related with this.

 - i.MX7D SDB : imx7d-sdb.dts with imx7d.dtsi, imx7s.dtsi
 - PICO-IMX7 : imx7d-pico-pi.dts with imx7d-pico.dtsi, imx7d.dtsi, imx7s.dtsi

Because there is blank information for "chosen" in imx7s.dtsi, I added "stdout-path" in imx7d-pico-dtsi.

< imx7s.dtsi >
/ {
	#address-cells = <1>;
	#size-cells = <1>;
	 * The decompressor and also some bootloaders rely on a
	 * pre-existing /chosen node to be available to insert the
	 * command line and merge other ATAGS info.
	 * Also for U-Boot there must be a pre-existing /memory node.
	chosen {}; ==> "there is not any information for stdout-path"
	memory { device_type = "memory"; };

< My modified imx7d-pico.dtsi >

/ {
	model = "Technexion Pico i.MX7D Board";
	compatible = "technexion,imx7d-pico", "fsl,imx7d";

	memory at 80000000 {
		reg = <0x80000000 0x80000000>;

	chosen {
		stdout-path = &uart5"; ==> "I added stdout-path information".

After I modified imx7d-pico.dtsi, I made imx7d-pico-pi.dtb.

Finally, I tried to run RTEMS using the revised dtb file. But, there is not any serial output.

On referencing, there is not JTAG debug port in PICO board, It is very difficult to debug current RTEMS for i.MX7D.

If there is mistake in my trial step, please let me know that.

Best Regards,
JunBeom Kim
President / EmbedCoreTech
Phone: +82-31-396-5584
Fax: +82-504-065-5720
Email: jbkim at e-coretech.kr
Web: www.e-coretech.kr

More information about the users mailing list