Bring up a imx6 board

cancel
Showing results for 
Search instead for 
Did you mean: 

Bring up a imx6 board

1,163 Views
kylekenj
Contributor III

I have a kernel and code working for a sabre-lite board. We made a custom board that simplifies the design of the sabre-lite and adds peripherals we need for our project. The board gets up and running. I am using the manufacturing tool to try and set it up. It will talk to the board through the otg usb port and I get serial data back through the terminal. I get stuck up when I try to write the uboot to the sd card. Here is the profile I am using.

<LIST name="Sabre-lite-SPI_NOR & SD card" desc="Choose SPI-NOR/SD as media">

    <CMD state="BootStrap" type="boot" body="BootStrap" file ="files/u-boot-mx6q-sabrelite.bin" >Loading uboot.</CMD>

    <CMD state="BootStrap" type="load" file="uImage" address="0x10800000"

        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Kernel.</CMD>

    <CMD state="BootStrap" type="load" file="initramfs.cpio.gz.uboot" address="0x10C00000"

        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Initramfs.</CMD>

    <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>

    <!--burn the uboot to SPI-NOR: -->

    <CMD state="Updater" type="push" body="$ ls /dev/*"/>

    <CMD state="Updater" type="push" body="$ dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1536 count=16">clean up u-boot parameter</CMD>

    <CMD state="Updater" type="push" body="send" file="files/u-boot-mx6q-sabrelite">Sending U-Boot</CMD>

    <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=512 seek=2 skip=2">write U-Boot to sd card</CMD>

    <!-- partitioning the SD card: -->

    <CMD state="Updater" type="push" body="send" file="mksdcard.sh.tar">Sending partition shell</CMD>

    <CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD>

    <CMD state="Updater" type="push" body="$ sh mksdcard.sh /dev/mmcblk0"> Partitioning SD card now...</CMD>

    <!-- burn the kernel: -->

    <CMD state="Updater" type="push" body="send" file="files/uImage">Sending kernel uImage</CMD>

    <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=1M seek=1 conv=fsync">write kernel image to sd card</CMD>

    <!-- burn the rootfs: -->

    <CMD state="Updater" type="push" body="$ mkfs.ext3 -j /dev/mmcblk0p1">Formatting rootfs partition</CMD>

    <CMD state="Updater" type="push" body="$ mkdir -p /mnt/mmcblk0p1"/>

    <CMD state="Updater" type="push" body="$ mount -t ext3 /dev/mmcblk0p1 /mnt/mmcblk0p1"/>

    <CMD state="Updater" type="push" body="pipe tar -jxv -C /mnt/mmcblk0p1" file="files/rootfs.tar.bz2">Sending and writting rootfs</CMD>

    <CMD state="Updater" type="push" body="frf">Finishing rootfs write</CMD>

    <CMD state="Updater" type="push" body="$ umount /mnt/mmcblk0p1">Unmounting rootfs partition</CMD>

    <CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD>

</LIST>

Here is the terminal feedback

UTP: received command '$ ls /dev/*'

UTP: executing "ls /dev/*"

/dev/XOR                 /dev/ptyua               /dev/ttydb

/dev/apm_bios            /dev/ptyub               /dev/ttydc

/dev/console             /dev/ptyuc               /dev/ttydd

/dev/cpu_dma_latency     /dev/ptyud               /dev/ttyde

/dev/crypto              /dev/ptyue               /dev/ttydf

/dev/fb                  /dev/ptyuf               /dev/ttye0

/dev/fb0                 /dev/ptyv0               /dev/ttye1

/dev/fb1                 /dev/ptyv1               /dev/ttye2

/dev/fb2                 /dev/ptyv2               /dev/ttye3

/dev/fb3                 /dev/ptyv3               /dev/ttye4

/dev/fb4                 /dev/ptyv4               /dev/ttye5

/dev/full                /dev/ptyv5               /dev/ttye6

/dev/i2c-0               /dev/ptyv6               /dev/ttye7

/dev/i2c-1               /dev/ptyv7               /dev/ttye8

/dev/i2c-2               /dev/ptyv8               /dev/ttye9

/dev/kmem                /dev/ptyv9               /dev/ttyea

/dev/kmsg                /dev/ptyva               /dev/ttyeb

/dev/loop0               /dev/ptyvb               /dev/ttyec

/dev/loop1               /dev/ptyvc               /dev/ttyed

/dev/loop2               /dev/ptyvd               /dev/ttyee

/dev/loop3               /dev/ptyve               /dev/ttyef

/dev/loop4               /dev/ptyvf               /dev/ttymxc0

/dev/loop5               /dev/ptyw0               /dev/ttymxc1

/dev/loop6               /dev/ptyw1               /dev/ttyp0

/dev/loop7               /dev/ptyw2               /dev/ttyp1

/dev/mem                 /dev/ptyw3               /dev/ttyp2

/dev/mmcblk0             /dev/ptyw4               /dev/ttyp3

/dev/mmcblk0p1           /dev/ptyw5               /dev/ttyp4

/dev/mtd0                /dev/ptyw6               /dev/ttyp5

/dev/mtd0ro              /dev/ptyw7               /dev/ttyp6

/dev/mtd1                /dev/ptyw8               /dev/ttyp7

/dev/mtd1ro              /dev/ptyw9               /dev/ttyp8

/dev/mtdblock0           /dev/ptywa               /dev/ttyp9

/dev/mtdblock1           /dev/ptywb               /dev/ttypa

/dev/mxc_asrc            /dev/ptywc               /dev/ttypb

/dev/mxc_hdmi            /dev/ptywd               /dev/ttypc

/dev/mxc_ipu             /dev/ptywe               /dev/ttypd

/dev/mxc_mem             /dev/ptywf               /dev/ttype

/dev/mxc_vpu             /dev/ptyx0               /dev/ttypf

/dev/mxs_viim            /dev/ptyx1               /dev/ttyq0

/dev/network_latency     /dev/ptyx2               /dev/ttyq1

/dev/network_throughput  /dev/ptyx3               /dev/ttyq2

/dev/null                /dev/ptyx4               /dev/ttyq3

/dev/psaux               /dev/ptyx5               /dev/ttyq4

/dev/ptmx                /dev/ptyx6               /dev/ttyq5

/dev/ptya0               /dev/ptyx7               /dev/ttyq6

/dev/ptya1               /dev/ptyx8               /dev/ttyq7

/dev/ptya2               /dev/ptyx9               /dev/ttyq8

/dev/ptya3               /dev/ptyxa               /dev/ttyq9

/dev/ptya4               /dev/ptyxb               /dev/ttyqa

/dev/ptya5               /dev/ptyxc               /dev/ttyqb

/dev/ptya6               /dev/ptyxd               /dev/ttyqc

/dev/ptya7               /dev/ptyxe               /dev/ttyqd

/dev/ptya8               /dev/ptyxf               /dev/ttyqe

/dev/ptya9               /dev/ptyy0               /dev/ttyqf

/dev/ptyaa               /dev/ptyy1               /dev/ttyr0

/dev/ptyab               /dev/ptyy2               /dev/ttyr1

/dev/ptyac               /dev/ptyy3               /dev/ttyr2

/dev/ptyad               /dev/ptyy4               /dev/ttyr3

/dev/ptyae               /dev/ptyy5               /dev/ttyr4

/dev/ptyaf               /dev/ptyy6               /dev/ttyr5

/dev/ptyb0               /dev/ptyy7               /dev/ttyr6

/dev/ptyb1               /dev/ptyy8               /dev/ttyr7

/dev/ptyb2               /dev/ptyy9               /dev/ttyr8

/dev/ptyb3               /dev/ptyya               /dev/ttyr9

/dev/ptyb4               /dev/ptyyb               /dev/ttyra

/dev/ptyb5               /dev/ptyyc               /dev/ttyrb

/dev/ptyb6               /dev/ptyyd               /dev/ttyrc

/dev/ptyb7               /dev/ptyye               /dev/ttyrd

/dev/ptyb8               /dev/ptyyf               /dev/ttyre

/dev/ptyb9               /dev/ptyz0               /dev/ttyrf

/dev/ptyba               /dev/ptyz1               /dev/ttys0

/dev/ptybb               /dev/ptyz2               /dev/ttys1

/dev/ptybc               /dev/ptyz3               /dev/ttys2

/dev/ptybd               /dev/ptyz4               /dev/ttys3

/dev/ptybe               /dev/ptyz5               /dev/ttys4

/dev/ptybf               /dev/ptyz6               /dev/ttys5

/dev/ptyc0               /dev/ptyz7               /dev/ttys6

/dev/ptyc1               /dev/ptyz8               /dev/ttys7

/dev/ptyc2               /dev/ptyz9               /dev/ttys8

/dev/ptyc3               /dev/ptyza               /dev/ttys9

/dev/ptyc4               /dev/ptyzb               /dev/ttysa

/dev/ptyc5               /dev/ptyzc               /dev/ttysb

/dev/ptyc6               /dev/ptyzd               /dev/ttysc

/dev/ptyc7               /dev/ptyze               /dev/ttysd

/dev/ptyc8               /dev/ptyzf               /dev/ttyse

/dev/ptyc9               /dev/random              /dev/ttysf

/dev/ptyca               /dev/rfkill              /dev/ttyt0

/dev/ptycb               /dev/rtc                 /dev/ttyt1

/dev/ptycc               /dev/rtc0                /dev/ttyt2

/dev/ptycd               /dev/tracebuf            /dev/ttyt3

/dev/ptyce               /dev/tty                 /dev/ttyt4

/dev/ptycf               /dev/tty0                /dev/ttyt5

/dev/ptyd0               /dev/tty1                /dev/ttyt6

/dev/ptyd1               /dev/tty10               /dev/ttyt7

/dev/ptyd2               /dev/tty11               /dev/ttyt8

/dev/ptyd3               /dev/tty12               /dev/ttyt9

/dev/ptyd4               /dev/tty13               /dev/ttyta

/dev/ptyd5               /dev/tty14               /dev/ttytb

/dev/ptyd6               /dev/tty15               /dev/ttytc

/dev/ptyd7               /dev/tty16               /dev/ttytd

/dev/ptyd8               /dev/tty17               /dev/ttyte

/dev/ptyd9               /dev/tty18               /dev/ttytf

/dev/ptyda               /dev/tty19               /dev/ttyu0

/dev/ptydb               /dev/tty2                /dev/ttyu1

/dev/ptydc               /dev/tty20               /dev/ttyu2

/dev/ptydd               /dev/tty21               /dev/ttyu3

/dev/ptyde               /dev/tty22               /dev/ttyu4

/dev/ptydf               /dev/tty23               /dev/ttyu5

/dev/ptye0               /dev/tty24               /dev/ttyu6

/dev/ptye1               /dev/tty25               /dev/ttyu7

/dev/ptye2               /dev/tty26               /dev/ttyu8

/dev/ptye3               /dev/tty27               /dev/ttyu9

/dev/ptye4               /dev/tty28               /dev/ttyua

/dev/ptye5               /dev/tty29               /dev/ttyub

/dev/ptye6               /dev/tty3                /dev/ttyuc

/dev/ptye7               /dev/tty30               /dev/ttyud

/dev/ptye8               /dev/tty31               /dev/ttyue

/dev/ptye9               /dev/tty32               /dev/ttyuf

/dev/ptyea               /dev/tty33               /dev/ttyv0

/dev/ptyeb               /dev/tty34               /dev/ttyv1

/dev/ptyec               /dev/tty35               /dev/ttyv2

/dev/ptyed               /dev/tty36               /dev/ttyv3

/dev/ptyee               /dev/tty37               /dev/ttyv4

/dev/ptyef               /dev/tty38               /dev/ttyv5

/dev/ptyp0               /dev/tty39               /dev/ttyv6

/dev/ptyp1               /dev/tty4                /dev/ttyv7

/dev/ptyp2               /dev/tty40               /dev/ttyv8

/dev/ptyp3               /dev/tty41               /dev/ttyv9

/dev/ptyp4               /dev/tty42               /dev/ttyva

/dev/ptyp5               /dev/tty43               /dev/ttyvb

/dev/ptyp6               /dev/tty44               /dev/ttyvc

/dev/ptyp7               /dev/tty45               /dev/ttyvd

/dev/ptyp8               /dev/tty46               /dev/ttyve

/dev/ptyp9               /dev/tty47               /dev/ttyvf

/dev/ptypa               /dev/tty48               /dev/ttyw0

/dev/ptypb               /dev/tty49               /dev/ttyw1

/dev/ptypc               /dev/tty5                /dev/ttyw2

/dev/ptypd               /dev/tty50               /dev/ttyw3

/dev/ptype               /dev/tty51               /dev/ttyw4

/dev/ptypf               /dev/tty52               /dev/ttyw5

/dev/ptyq0               /dev/tty53               /dev/ttyw6

/dev/ptyq1               /dev/tty54               /dev/ttyw7

/dev/ptyq2               /dev/tty55               /dev/ttyw8

/dev/ptyq3               /dev/tty56               /dev/ttyw9

/dev/ptyq4               /dev/tty57               /dev/ttywa

/dev/ptyq5               /dev/tty58               /dev/ttywb

/dev/ptyq6               /dev/tty59               /dev/ttywc

/dev/ptyq7               /dev/tty6                /dev/ttywd

/dev/ptyq8               /dev/tty60               /dev/ttywe

/dev/ptyq9               /dev/tty61               /dev/ttywf

/dev/ptyqa               /dev/tty62               /dev/ttyx0

/dev/ptyqb               /dev/tty63               /dev/ttyx1

/dev/ptyqc               /dev/tty7                /dev/ttyx2

/dev/ptyqd               /dev/tty8                /dev/ttyx3

/dev/ptyqe               /dev/tty9                /dev/ttyx4

/dev/ptyqf               /dev/ttya0               /dev/ttyx5

/dev/ptyr0               /dev/ttya1               /dev/ttyx6

/dev/ptyr1               /dev/ttya2               /dev/ttyx7

/dev/ptyr2               /dev/ttya3               /dev/ttyx8

/dev/ptyr3               /dev/ttya4               /dev/ttyx9

/dev/ptyr4               /dev/ttya5               /dev/ttyxa

/dev/ptyr5               /dev/ttya6               /dev/ttyxb

/dev/ptyr6               /dev/ttya7               /dev/ttyxc

/dev/ptyr7               /dev/ttya8               /dev/ttyxd

/dev/ptyr8               /dev/ttya9               /dev/ttyxe

/dev/ptyr9               /dev/ttyaa               /dev/ttyxf

/dev/ptyra               /dev/ttyab               /dev/ttyy0

/dev/ptyrb               /dev/ttyac               /dev/ttyy1

/dev/ptyrc               /dev/ttyad               /dev/ttyy2

/dev/ptyrd               /dev/ttyae               /dev/ttyy3

/dev/ptyre               /dev/ttyaf               /dev/ttyy4

/dev/ptyrf               /dev/ttyb0               /dev/ttyy5

/dev/ptys0               /dev/ttyb1               /dev/ttyy6

/dev/ptys1               /dev/ttyb2               /dev/ttyy7

/dev/ptys2               /dev/ttyb3               /dev/ttyy8

/dev/ptys3               /dev/ttyb4               /dev/ttyy9

/dev/ptys4               /dev/ttyb5               /dev/ttyya

/dev/ptys5               /dev/ttyb6               /dev/ttyyb

/dev/ptys6               /dev/ttyb7               /dev/ttyyc

/dev/ptys7               /dev/ttyb8               /dev/ttyyd

/dev/ptys8               /dev/ttyb9               /dev/ttyye

/dev/ptys9               /dev/ttyba               /dev/ttyyf

/dev/ptysa               /dev/ttybb               /dev/ttyz0

/dev/ptysb               /dev/ttybc               /dev/ttyz1

/dev/ptysc               /dev/ttybd               /dev/ttyz2

/dev/ptysd               /dev/ttybe               /dev/ttyz3

/dev/ptyse               /dev/ttybf               /dev/ttyz4

/dev/ptysf               /dev/ttyc0               /dev/ttyz5

/dev/ptyt0               /dev/ttyc1               /dev/ttyz6

/dev/ptyt1               /dev/ttyc2               /dev/ttyz7

/dev/ptyt2               /dev/ttyc3               /dev/ttyz8

/dev/ptyt3               /dev/ttyc4               /dev/ttyz9

/dev/ptyt4               /dev/ttyc5               /dev/ttyza

/dev/ptyt5               /dev/ttyc6               /dev/ttyzb

/dev/ptyt6               /dev/ttyc7               /dev/ttyzc

/dev/ptyt7               /dev/ttyc8               /dev/ttyzd

/dev/ptyt8               /dev/ttyc9               /dev/ttyze

/dev/ptyt9               /dev/ttyca               /dev/ttyzf

/dev/ptyta               /dev/ttycb               /dev/ubi_ctrl

/dev/ptytb               /dev/ttycc               /dev/urandom

/dev/ptytc               /dev/ttycd               /dev/utp

/dev/ptytd               /dev/ttyce               /dev/vcs

/dev/ptyte               /dev/ttycf               /dev/vcs1

/dev/ptytf               /dev/ttyd0               /dev/vcsa

/dev/ptyu0               /dev/ttyd1               /dev/vcsa1

/dev/ptyu1               /dev/ttyd2               /dev/vhci

/dev/ptyu2               /dev/ttyd3               /dev/video16

/dev/ptyu3               /dev/ttyd4               /dev/video17

/dev/ptyu4               /dev/ttyd5               /dev/video18

/dev/ptyu5               /dev/ttyd6               /dev/video19

/dev/ptyu6               /dev/ttyd7               /dev/video20

/dev/ptyu7               /dev/ttyd8               /dev/watchdog

/dev/ptyu8               /dev/ttyd9               /dev/zero

/dev/ptyu9               /dev/ttyda

/dev/disk:

by-id    by-path  by-uuid

/dev/input:

mice    uinput

/dev/pts:

/dev/shm:

/dev/snd:

timer

UTP: sending Success to kernel for command $ ls /dev/*.

utp_poll: pass returned.

UTP: received command '$ dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1536 count=16'

UTP: executing "dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1536 count=16"

dd: can't open '/dev/mmcblk0': Read-only file system

UTP: sending Non-success to kernel for command $ dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1536 count=16.

utp_poll: exit with status 256

Labels (3)
0 Kudos
4 Replies

64 Views
kylekenj
Contributor III

Got it to run through the mfgtool. I had to recompile the uImage to ignore the write protection. Now I am trying to get the board to boot off of the sd card. The

"Manufacturing Tool V2 Quick Start Guide" told how to flash the fuses using the following commands.

How to Program a Fuse

MfgTool V2 supports writing the specified value into the fuse.

The OTP fuse can be written through the following commands:

<CMD state="Updater" type="push" body="$ ls /sys/fsl_otp ">Showing HW_OCOTP fuse bank</CMD>


<CMD state="Updater" type="push" body="$ echo 0x11223344 > /sys/fsl_otp/HW_OCOTP_MAC0">write 0x11223344 to HW_OCOTP_MAC0 fuse bank</CMD>


<CMD state="Updater" type="push" body="$ cat /sys/fsl_otp/HW_OCOTP_MAC0">Read value from HW_OCOTP_MAC0 fuse bank</CMD>

The fuse bank name (ex: HW_OCOTP_MAC0) should be changed according as needed.

I change the fuse value to 0x11204154 and the fuse name to HW_OCOTP_CFG1 as found in the IMX6DQRM (reference manual). The problem is the value returned by cat is the old value so the echo didn't work. Is there something else I need to do to get that to write? Thanks.

0 Kudos

64 Views
LeonardoSandova
Specialist I

Please post this last question in a new thread.

Leo

0 Kudos

64 Views
LeonardoSandova
Specialist I

The problem is that you are using the same device (/dev/mmcblk0) for SPI-NOR and SD card. I found out on one of the ucl2.xml files

<!--

      Please use "cat /proc/mtd" to check the right partitions for NAND

      ,mtd0 and mtd1 are for SPI-NOR; mtd2 - mtd6 are for NAND

    -->

so NOR may be /dev/mtd0.

Leo

0 Kudos

64 Views
kylekenj
Contributor III

Do you need spi-nor for booting up. Couldn't you use the sd card for u-boot.

0 Kudos