Skip to content

Releases: dok3r/ulx3s-saxonsoc

v2020.10.20

20 Oct 05:49
Compare
Choose a tag to compare
support for SMP version of saxonsoc

v2020.04.20

20 Apr 06:05
Compare
Choose a tag to compare

v2020.04.17

18 Apr 05:37
Compare
Choose a tag to compare

Simple and standard example:

This example assumes you have 12f version of FPGA and ESP32 with uftpd enabled. That means you connect with FTP to the ESP32 IP and issue following FTP commands:

put [email protected] flash@0x300000
put [email protected] flash@0x310000
put saxonsoc-sdimage.raw sd@0
put saxonsoc-ulx3s-linux-12f.bit fpga

85F version with 64 MB SDRAM

You can use standard procedure above, but if you boot the Linux - you will have 32 MB of RAM. If you want to take advantage of 64 MB SDRAM, you have to go through the similar procedure as standard one (thanks to @dpavlin), but you need use saxonsoc-ulx3s-linux-85-64mem.bit bitstream and to interrupt u-boot autoload and issue following command (0:1 is for first partition, 0:2 is for second partition, etc):

load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000

If 64 MB commands you entered results with correct boot and works for you, you can always saveenv:

setenv bootcmd "load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
saveenv 

ULX3S without ESP32

without ESP32, you need to prepare sd card manually (dd if=saxonsoc-sdimage.raw) and upload it with fujprog. Once you have image copied to the card and card in slot, here's the fujprog example for 45f:

fujprog -j FLASH -f 0x300000 [email protected]
fujprog -j FLASH -f 0x310000 [email protected]
fujprog saxonsoc-ulx3s-linux-45f.bit

Different partition (root partition is not first one)

If you prefer or have root partition on different partition number (second, third, etc), you have to change uboot environment and save environment:

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

or if you have 64 MB SDRAM;

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

Of course, you have to change all instances of "0:2" and "/dev/mmcblk0p2" to partition where your root partition is located. In above example, it is second partition.

Upgrade

HDMI version needs reflashing of [email protected]. It does not need reflash of [email protected].

v2020.04.02

02 Apr 21:18
Compare
Choose a tag to compare

Simple and standard example:

This example assumes you have 12f version of FPGA and ESP32 with uftpd enabled. That means you connect with FTP to the ESP32 IP and issue following FTP commands:

put [email protected] flash@0x300000
put [email protected] flash@0x310000
put saxonsoc-sdimage.raw sd@0
put saxonsoc-ulx3s-linux-12f.bit fpga

85F version with 64 MB SDRAM

You can use standard procedure above, but if you boot the Linux - you will have 32 MB of RAM. If you want to take advantage of 64 MB SDRAM, you have to go through the similar procedure as standard one (thanks to @dpavlin), but you need use saxonsoc-ulx3s-linux-85-64mem.bit bitstream and to interrupt u-boot autoload and issue following command (0:1 is for first partition, 0:2 is for second partition, etc):

load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000

If 64 MB commands you entered results with correct boot and works for you, you can always saveenv:

setenv bootcmd "load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
saveenv 

ULX3S without ESP32

without ESP32, you need to prepare sd card manually (dd if=saxonsoc-sdimage.raw) and upload it with ujprog. Once you have image copied to the card and card in slot, here's the ujprog example for 45f:

ujprog -j FLASH -f 0x300000 [email protected]
ujprog -j FLASH -f 0x310000 [email protected]
ujprog saxonsoc-ulx3s-linux-45f.bit

Different partition (root partition is not first one)

If you prefer or have root partition on different partition number (second, third, etc), you have to change uboot environment and save environment:

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

or if you have 64 MB SDRAM;

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

Of course, you have to change all instances of "0:2" and "/dev/mmcblk0p2" to partition where your root partition is located. In above example, it is second partition.

Upgrade

HDMI version needs reflashing of [email protected]. It does not need reflash of [email protected].

v2020.03.14 - HDMI and PS/2 support

14 Mar 12:06
Compare
Choose a tag to compare

Simple and standard example:

This example assumes you have 12f version of FPGA and ESP32 with uftpd enabled. That means you connect with FTP to the ESP32 IP and issue following FTP commands:

put [email protected] flash@0x300000
put [email protected] flash@0x310000
put saxonsoc-sdimage.raw sd@0
put saxonsoc-ulx3s-linux-12f.bit fpga

85F version with 64 MB SDRAM

You can use standard procedure above, but if you boot the Linux - you will have 32 MB of RAM. If you want to take advantage of 64 MB SDRAM, you have to go through the similar procedure as standard one (thanks to @dpavlin), but you need use saxonsoc-ulx3s-linux-85-64mem.bit bitstream and to interrupt u-boot autoload and issue following command (0:1 is for first partition, 0:2 is for second partition, etc):

load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000

If 64 MB commands you entered results with correct boot and works for you, you can always saveenv:

setenv bootcmd "load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
saveenv 

ULX3S without ESP32

without ESP32, you need to prepare sd card manually (dd if=saxonsoc-sdimage.raw) and upload it with ujprog. Once you have image copied to the card and card in slot, here's the ujprog example for 45f:

ujprog -j FLASH -f 0x300000 [email protected]
ujprog -j FLASH -f 0x310000 [email protected]
ujprog saxonsoc-ulx3s-linux-45f.bit

Different partition (root partition is not first one)

If you prefer or have root partition on different partition number (second, third, etc), you have to change uboot environment and save environment:

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

or if you have 64 MB SDRAM;

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

Of course, you have to change all instances of "0:2" and "/dev/mmcblk0p2" to partition where your root partition is located. In above example, it is second partition.

Upgrade

HDMI version needs reflashing of [email protected]. It does not need reflash of [email protected].

v2020.02.23

23 Feb 11:09
Compare
Choose a tag to compare

Simple and standard example:

This example assumes you have 12f version of FPGA and ESP32 with uftpd enabled. That means you connect with FTP to the ESP32 IP and issue following FTP commands:

put [email protected] flash@0x300000
put [email protected] flash@0x310000
put saxonsoc-sdimage.raw sd@0
put saxonsoc-ulx3s-linux-12f.bit fpga

85F version with 64 MB SDRAM

You can use standard procedure above, but if you boot the Linux - you will have 32 MB of RAM. If you want to take advantage of 64 MB SDRAM, you have to go through the similar procedure as standard one (thanks to @dpavlin), but you need use saxonsoc-ulx3s-linux-85-64mem.bit bitstream and to interrupt u-boot autoload and issue following command (0:1 is for first partition, 0:2 is for second partition, etc):

load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000

If 64 MB commands you entered results with correct boot and works for you, you can always saveenv:

setenv bootcmd "load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
saveenv 

ULX3S without ESP32

without ESP32, you need to prepare sd card manually (dd if=saxonsoc-sdimage.raw) and upload it with ujprog. Once you have image copied to the card and card in slot, here's the ujprog example for 45f:

ujprog -j FLASH -f 0x300000 [email protected]
ujprog -j FLASH -f 0x310000 [email protected]
ujprog saxonsoc-ulx3s-linux-45f.bit

Different partition (root partition is not first one)

If you prefer or have root partition on different partition number (second, third, etc), you have to change uboot environment and save environment:

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

or if you have 64 MB SDRAM;

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

Of course, you have to change all instances of "0:2" and "/dev/mmcblk0p2" to partition where your root partition is located. In above example, it is second partition.

v2020.02.11

12 Feb 05:34
Compare
Choose a tag to compare

Simple and standard example:

This example assumes you have 12f version of FPGA and ESP32 with uftpd enabled. That means you connect with FTP to the ESP32 IP and issue following FTP commands:

put [email protected] flash@0x300000
put [email protected] flash@0x310000
put saxonsoc-sdimage.raw sd@0
put saxonsoc-ulx3s-linux-12f.bit fpga

85F version with 64 MB SDRAM

You can use standard procedure above, but if you boot the Linux - you will have 32 MB of RAM. If you want to take advantage of 64 MB SDRAM, you have to go through the similar procedure as standard one (thanks to @dpavlin), but you need use saxonsoc-ulx3s-linux-85-64mem.bit bitstream and to interrupt u-boot autoload and issue following command (0:1 is for first partition, 0:2 is for second partition, etc):

load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000

If 64 MB commands you entered results with correct boot and works for you, you can always saveenv:

setenv bootcmd "load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
saveenv 

ULX3S without ESP32

without ESP32, you need to prepare sd card manually (dd if=saxonsoc-sdimage.raw) and upload it with ujprog. Once you have image copied to the card and card in slot, here's the ujprog example for 45f:

ujprog -j FLASH -f 0x300000 [email protected]
ujprog -j FLASH -f 0x310000 [email protected]
ujprog saxonsoc-ulx3s-linux-45f.bit

Different partition (root partition is not first one)

If you prefer or have root partition on different partition number (second, third, etc), you have to change uboot environment and save environment:

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

or if you have 64 MB SDRAM;

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

Of course, you have to change all instances of "0:2" and "/dev/mmcblk0p2" to partition where your root partition is located. In above example, it is second partition.

v2020.01.31

01 Feb 08:38
Compare
Choose a tag to compare

Simple and standard example:

This example assumes you have 12f version of FPGA and ESP32 with uftpd enabled. That means you connect with FTP to the ESP32 IP and issue following FTP commands:

put [email protected] flash@0x300000
put [email protected] flash@0x310000
put saxonsoc-sdimage.raw sd@0
put saxonsoc-ulx3s-linux-12f.bit fpga

85F version with 64 MB SDRAM

You can use standard procedure above, but if you boot the Linux - you will have 32 MB of RAM. If you want to take advantage of 64 MB SDRAM, you have to go through the similar procedure as standard one (thanks to @dpavlin), but you need use saxonsoc-ulx3s-linux-85-64mem.bit bitstream and to interrupt u-boot autoload and issue following command (0:1 is for first partition, 0:2 is for second partition, etc):

load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000

If 64 MB commands you entered results with correct boot and works for you, you can always saveenv:

setenv bootcmd "load mmc 0:1 0x80000000 /boot/uImage;load mmc 0:1 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
saveenv 

ULX3S without ESP32

without ESP32, you need to prepare sd card manually (dd if=saxonsoc-sdimage.raw) and upload it with ujprog. Once you have image copied to the card and card in slot, here's the ujprog example for 45f:

ujprog -j FLASH -f 0x300000 [email protected]
ujprog -j FLASH -f 0x310000 [email protected]
ujprog saxonsoc-ulx3s-linux-45f.bit

Different partition (root partition is not first one)

If you prefer or have root partition on different partition number (second, third, etc), you have to change uboot environment and save environment:

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

or if you have 64 MB SDRAM;

setenv bootcmd "load mmc 0:2 0x80000000 /boot/uImage;load mmc 0:2 0x81EF0000 /boot/dtb;fdt add 0x81EF0000;fdt memory 0x80000000 0x04000000;bootm 0x80000000 - 0x81EF0000"
setenv bootargs "rootwait console=hvc0 root=/dev/mmcblk0p2 init=/sbin/init mmc_core.use_spi_crc=0"
saveenv

Of course, you have to change all instances of "0:2" and "/dev/mmcblk0p2" to partition where your root partition is located. In above example, it is second partition.

v2020.01.24

24 Jan 19:15
Compare
Choose a tag to compare

12f:

put [email protected] flash@0x300000
put [email protected] flash@0x310000
put saxonsoc-sdimage.raw sd@0
put saxonsoc-ulx3s-linux-12f.bit fpga

85f with 64 MB SDRAM:

put [email protected] flash@0x300000
put [email protected] flash@0x310000
put saxonsoc-sdimage-64.raw sd@0
put saxonsoc-ulx3s-linux-85f-64.bit fpga

without ESP32, you need to prepare sd card manually (dd if=saxonsoc-sdimage.raw) and uploading it with ujprog. example for 45f:

ujprog -j FLASH -f 0x300000 [email protected]
ujprog -j FLASH -f 0x310000 [email protected]
ujprog saxonsoc-ulx3s-linux-45f.bit

patching u-boot for ext2 on second partition (you still need to patch /boot/dtb, see below):

sed -e 's/load mmc 0:1/load mmc 0:2/g' <[email protected] > [email protected]

patching dtb in /boot for ext2 on second partition (u-boot patching above is needed):

cp /boot/dtb /boot/dtb.orig
sed -e 's#root=/dev/mmcblk0p1#root=/dev/mmcblk0p2#g' < /boot/dtb.orig > /boot/dtb

Note: 45f version in this release have close timing.

v2020.01.13

13 Jan 05:15
Compare
Choose a tag to compare

12f:

put [email protected] flash@0x300000
put [email protected] flash@0x310000
put saxonsoc-sdimage.raw sd@0
put saxonsoc-ulx3s-linux-12f.bit fpga

85f with 64 MB SDRAM:

put [email protected] flash@0x300000
put [email protected] flash@0x310000
put saxonsoc-sdimage-64.raw sd@0
put saxonsoc-ulx3s-linux-85f-64.bit fpga

without ESP32, you need to prepare sd card manually (dd if=saxonsoc-sdimage.raw) and uploading it with ujprog. example for 45f:

ujprog -j FLASH -f 0x300000 [email protected]
ujprog -j FLASH -f 0x310000 [email protected]
ujprog saxonsoc-ulx3s-linux-45f.bit

patching u-boot for ext2 on second partition (you still need to patch /boot/dtb, see below):

sed -e 's/load mmc 0:1/load mmc 0:2/g' <[email protected] > [email protected]

patching dtb in /boot for ext2 on second partition (u-boot patching above is needed):

cp /boot/dtb /boot/dtb.orig
sed -e 's#root=/dev/mmcblk0p1#root=/dev/mmcblk0p2#g' < /boot/dtb.orig > /boot/dtb