Bump buildroot to 2019.02

This commit is contained in:
2019-03-28 22:49:48 +01:00
parent 5598b1b762
commit 920d307141
5121 changed files with 78550 additions and 46132 deletions

View File

@@ -6,11 +6,11 @@ image efi-part.vfat {
file EFI {
image = "efi-part/EFI"
}
file bzImage {
image = "bzImage"
file Image {
image = "Image"
}
}
size = 16M
size = 32M
}
image disk.img {
@@ -27,5 +27,4 @@ image disk.img {
partition-type = 0x83
image = "rootfs.ext2"
}
}

View File

@@ -0,0 +1,6 @@
set default="0"
set timeout="5"
menuentry "Buildroot" {
linux /Image root=/dev/vda2 rootwait console=ttyAMA0
}

View File

@@ -0,0 +1,5 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
cp -f ${BOARD_DIR}/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg

View File

@@ -0,0 +1,34 @@
The aarch64_efi_defconfig allows to build a minimal Linux system that
can boot on all AArch64 servers providing an EFI firmware and ACPI.
Building and booting
====================
$ make aarch64_efi_defconfig
$ make
The file output/images/disk.img is a complete disk image that can be
booted, it includes the grub2 bootloader, Linux kernel and root
filesystem.
Testing under Qemu
==================
This image can also be tested using Qemu:
qemu-system-aarch64 \
-M virt \
-cpu cortex-a57 \
-m 512 \
-nographic \
-bios </path/to/QEMU_EFI.fd> \
-drive file=output/images/disk.img,if=none,format=raw,id=hd0 \
-device virtio-blk-device,drive=hd0 \
-netdev user,id=eth0 \
-device virtio-net-device,netdev=eth0
Note that </path/to/QEMU_EFI.fd> needs to point to a valid aarch64 UEFI
firmware image for qemu.
It may be provided by your distribution as a edk2-aarch64 or AAVMF
package, in path such as /usr/share/edk2/aarch64/QEMU_EFI.fd .

View File

@@ -0,0 +1,4 @@
label linux-4.17.0-rc3
kernel /Image
devicetree /sun50i-a64-amarula-relic.dtb
append console=ttyS0,115200 earlyprintk root=/dev/mmcblk1p4 rootwait

View File

@@ -0,0 +1,10 @@
image boot.vfat {
vfat {
files = {
"Image",
"sun50i-a64-amarula-relic.dtb",
"extlinux"
}
}
size = 64M
}

View File

@@ -0,0 +1,4 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf

View File

@@ -0,0 +1,90 @@
Amarula A64 Relic
================
Amarula A64-Relic is an Allwinner A64 based IoT device, which supports:
- Allwinner A64 Cortex-A53
- Mali-400MP2 GPU
- AXP803 PMIC
- 1GB DDR3 RAM
- 8GB eMMC
- AP6330 Wifi/BLE
- MIPI-DSI
- CSI: OV5640 sensor
- USB OTG
- 12V DC power supply
Wiki link:
https://openedev.amarulasolutions.com/display/ODWIKI/Amarual+A64-Relic
Build
=====
$ make amarula_a64_relic_defconfig
$ make
build files at output/images/:
- sunxi-spl.bin
- u-boot.itb
- Image
- sun50i-a64-amarula-relic.dtb
- boot.vfat
- rootfs.ext4
Write eMMC
=========
The board comes with an operating system preloaded on the eMMC.
To replace it with the Buildroot-built system, take the following
steps
1. Connect the board UART with host and open minicom(ttyUSBx/115200N8)
2. Supply 12V DC for power-on the board.
3. Interrupt U-Boot by pressing enter
4. Create GPT partitions
=> mmc dev 1
=> gpt write mmc 1 $partitions
5. Connect the board USB-OTG with USB slot on the host.
6. Initiate fastboot
=> fastboot 0
7. Write images from host onto eMMC using fastboot
$ cd output/images
$ sudo fastboot -i 0x1f3a flash loader1 sunxi-spl.bin
$ sudo fastboot -i 0x1f3a flash loader2 u-boot.itb
$ sudo fastboot -i 0x1f3a flash esp boot.vfat
$ sudo fastboot -i 0x1f3a flash system rootfs.ext4
Update eMMC during Development
==============================
During development, reflashing the entire filesystem image at every
change is time consuming. A useful alternative is to directly access
over USB the filesystem stored on the eMMC, using the USB Mass Storage
capability of U-Boot. To achieve this:
1. Build U-Boot by enabling UMS
$ make uboot-menuconfig
(select CONFIG_CMD_USB_MASS_STORAGE=y)
2. Follow all 6 steps from 'Write eMMC' and mount eMMC on host
=> mmc dev 1
=> ums 0 mmc 1
WiFi
====
# wpa_passphrase ACCESSPOINTNAME >> /etc/wpa_supplicant.conf
(type password and enter)
# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B
# udhcpc -i wlan0
# ping google.com
--
Jagan Teki <jagan@amarulasolutions.com>
29-Jun-2018

View File

@@ -0,0 +1,83 @@
#AP6330_NVRAM_V1.0_20121130
#Sample variables file for BCM94330 SD FC AGB board
manfid=0x2d0
prodid=0x0547
vendid=0x14e4
devid=0x4360
boardtype=0x05e1
boardrev=0x1202
boardflags=0x0080200
nocrc=1
xtalfreq=26000
boardnum=22
macaddr=00:90:4c:c5:12:38
ag0=254
aa2g=1
ccode=ALL
pa0itssit=0x20
pa0b0=5587
pa0b1=-633
pa0b2=-158
rssismf2g=0xa
rssismc2g=0x3
rssisav2g=0x7
#rssi params for 5GHz
rssismf5g=0x4
rssismc5g=0x3
rssisav5g=0x7
#PA parameters for lower a-band
pa1lob0=4748
pa1lob1=-566
pa1lob2=-180
#PA parameters for midband
pa1b0=4762
pa1b1=-593
pa1b2=-172
#PA parameters for high band
#pa1hib0=4596
pa1hib0=4666
pa1hib1=-619
pa1hib2=-163
rxpo5g=0
maxp2ga0=74
maxp5ga0=66
maxp5gla0=66
maxp5gha0=66
# 2.4G Tx Power offsets
cck2gpo=0x2222
ofdm2gpo=0x44444444
mcs2gpo0=0x6666
mcs2gpo1=0x6666
# 5G Tx Power offsets
ofdm5gpo=0x44444444
ofdm5glpo=0x44444444
ofdm5ghpo=0x44444444
mcs5gpo0=0x6666
mcs5gpo1=0x6666
mcs5glpo0=0x6666
mcs5glpo1=0x6666
mcs5ghpo0=0x6666
mcs5ghpo1=0x6666
sromrev=3
il0macaddr=00:90:4c:c5:12:38
wl0id=0x431b
cckPwrOffset=4
swctrlmap_2g=0x44844484,0x42824282,0x40804484,0x18282,0x1ff
triso5g=0
swctrlmap_5g=0x00100010,0x20202020,0x20202020,0x14202,0x0f0
rfreg033=0x19
rfreg033_cck=0x1f
dacrate2g=160
dacrate5g=160
txalpfbyp2g=1
bphyscale=17
cckPwrIdxCorr=-15
pacalidx2g=50
#pacalidx5g=20
noise_cal_ref_2g=53
noise_cal_po_2g=0
noise_cal_ref_5g=52
noise_cal_po_5g=5,0,0
# 4330 OOB parameter: High level trigger
muxenab=0x10

View File

@@ -0,0 +1,4 @@
label Vyasa linux-next
kernel /boot/uImage
devicetree /boot/rk3288-vyasa.dtb
append console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait

View File

@@ -0,0 +1,22 @@
image sdcard.img {
hdimage {
}
partition u-boot-tpl-spl-dtb {
in-partition-table = "no"
image = "u-boot-tpl-spl-dtb.img"
offset = 32K
}
partition u-boot-dtb {
in-partition-table = "no"
image = "u-boot-dtb.img"
offset = 8M
size = 30M # falcon mode: args @ 16M args, uImage @ 17M
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

View File

@@ -0,0 +1,3 @@
# Currently mainline kernel exhibits issues when running rockchip gmac
# on the board, so enable it as loadable module and insert it later
CONFIG_DWMAC_ROCKCHIP=m

View File

@@ -0,0 +1,9 @@
#!/bin/sh
MKIMAGE=$HOST_DIR/bin/mkimage
BOARD_DIR="$(dirname $0)"
$MKIMAGE -n rk3288 -T rksd -d $BINARIES_DIR/u-boot-tpl.bin $BINARIES_DIR/u-boot-tpl.img
cat $BINARIES_DIR/u-boot-tpl.img $BINARIES_DIR/u-boot-spl-dtb.bin > $BINARIES_DIR/u-boot-tpl-spl-dtb.img
install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf

View File

@@ -0,0 +1,31 @@
Vyasa RK3288
============
Vyasa is RK3288 based Single board computer with fully supported opensource software.
https://openedev.amarulasolutions.com/display/ODWIKI/Vyasa+RK3288
How to build it
===============
$ make amarula_vyasa_rk3288_defconfig
Then you can edit the build options using
$ make menuconfig
Compile all and build rootfs image:
$ make
Prepare your SDCard
===================
Buildroot generates a ready-to-use SD card image that you can flash directly to
the card. The image will be in output/images/sdcard.img.
You can write this image directly to an SD card device (i.e. /dev/xxx):
$ sudo dd if=output/images/sdcard.img of=/dev/xxx
$ sudo sync
Finally, you can insert the SD card to the Vyasa RK3288 board, close J4 and boot it.

View File

@@ -0,0 +1,6 @@
#!/bin/sh
MKIMAGE=${HOST_DIR}/usr/bin/mkimage
MKIMAGE_IN=${BINARIES_DIR}/br2-ucls1012a.its
MKIMAGE_OUT=${BINARIES_DIR}/part0-000000.itb
${MKIMAGE} -f ${MKIMAGE_IN} ${MKIMAGE_OUT}

View File

@@ -0,0 +1,74 @@
Arcturus uCLS1012A SoM
======================
This tutorial describes how to use the predefined Buildroot
configuration for the Arcturus uCLS101A SoM platform.
Additional information about the uCLS1012A System on Module can be found at
https://www.arcturusnetworks.com/products/ucls1012a
and product support for registered users at
https://www.arcturusnetworks.com/support
Building
--------
Return to the top directory <buildrootdir> and execute the following commands.
make arcturus_ucls1012a_defconfig
make
Result of the build
-------------------
After building, you should obtain this tree:
output/images/
+-- arc-ucls1012a.dtb
+-- Image
+-- part0-000000.itb
+-- rootfs.cpio
+-- rootfs.cpio.gz
+-- rootfs.tar
+-- u-boot.bin
+-- ucls1012a.its
Flashing
--------
You'll need to program the image created by buildroot into the SPI NOR flash.
1. Reboot your module and via the serial console press <escape> to enter the B$
u-boot shell.
From the shell you will need to update four environment variables replacing the
IPv4 IP Address with ones that will work with your network and tftp server.
B$ setenv ipaddr 192.168.1.81
B$ setenv serverip 192.168.1.80
B$ setenv gatewayip 192.168.1.1
B$ setenv netmask 255.255.255.0
B$ saveenv
2. Enable tftp server to serve the <buildrootdir>/output/images/ folder.
3. Program the new U-Boot binary (optional)
If you don't feel confident upgrading your bootloader then don't do it,
it's unnecessary most of the time.
B$ tftp u-boot.bin
B$ run program_uboot
4. Program the ITB image (includes Kernel, DTB and Ramdisk)
B$ tftp part0-000000.itb
B$ run iprogram
5. Booting your new system
Reboot your system by reset command
B$ reset
or
B$ run bootcmd
Good Luck !

View File

@@ -0,0 +1,14 @@
#!/bin/sh
#
case "$1" in
start)
modprobe pfe
;;
stop)
;;
restart|reload)
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac

View File

@@ -0,0 +1,4 @@
label Tinker linux-next
kernel /boot/uImage
devicetree /boot/rk3288-tinker.dtb
append console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait

View File

@@ -0,0 +1,15 @@
image sdcard.img {
hdimage {
}
partition u-boot-spl-dtb {
in-partition-table = "no"
image = "u-boot-spl-dtb.img"
offset = 32K
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

View File

@@ -0,0 +1,9 @@
#!/bin/sh
MKIMAGE=$HOST_DIR/bin/mkimage
BOARD_DIR="$(dirname $0)"
$MKIMAGE -n rk3288 -T rksd -d $BINARIES_DIR/u-boot-spl-dtb.bin $BINARIES_DIR/u-boot-spl-dtb.img
cat $BINARIES_DIR/u-boot-dtb.bin >> $BINARIES_DIR/u-boot-spl-dtb.img
install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf

View File

@@ -0,0 +1,37 @@
Tinker RK3288
=============
Tinker Board is a Single Board Computer (SBC) in an ultra-small form
factor that offers class-leading performance while leveraging outstanding
mechanical compatibility.
Tinker link:
https://www.asus.com/in/Single-Board-Computer/Tinker-Board/
Wiki link:
https://openedev.amarulasolutions.com/display/ODWIKI/Tinker+RK3288
How to build it
===============
$ make asus_tinker_rk3288_defconfig
Then you can edit the build options using
$ make menuconfig
Compile all and build rootfs image:
$ make
Prepare your SDCard
===================
Buildroot generates a ready-to-use SD card image that you can flash directly to
the card. The image will be in output/images/sdcard.img.
You can write this image directly to an SD card device (i.e. /dev/xxx):
$ sudo dd if=output/images/sdcard.img of=/dev/xxx
$ sudo sync
Finally, you can insert the SD card to the Tinker RK3288 board and boot it.

View File

@@ -4,6 +4,10 @@ BUILDIR=$1
TTY=$2
BOARD=$3
family_at91sam9260ek="at91sam9260ek"
mach_at91sam9260ek="at91sam9260-ek"
dtb_at91sam9260ek="at91sam9260ek.dtb"
family_at91sam9g45m10ek="at91sam9m10g45ek"
mach_at91sam9g45m10ek="at91sam9m10-g45-ek"
dtb_at91sam9g45m10ek="at91sam9m10g45ek.dtb"
@@ -16,6 +20,10 @@ family_at91sam9g15ek="at91sam9x5ek"
mach_at91sam9g15ek="at91sam9g15-ek"
dtb_at91sam9g15ek="at91sam9g15ek.dtb"
family_at91sam9g20ek="at91sam9g20ek"
mach_at91sam9g20ek="at91sam9g20-ek"
dtb_at91sam9g20ek="at91sam9g20ek.dtb"
family_at91sam9g25ek="at91sam9x5ek"
mach_at91sam9g25ek="at91sam9g25-ek"
dtb_at91sam9g25ek="at91sam9g25ek.dtb"
@@ -90,9 +98,11 @@ Usage:
$0 <builddir_path> <interface> <board>
Available boards:
at91sam9260ek
at91sam9g45m10ek
at91sam9rlek
at91sam9g15ek
at91sam9g20ek
at91sam9g25ek
at91sam9x25ek
at91sam9g35ek

View File

@@ -0,0 +1,7 @@
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
mmc dev 0
fatload mmc 0 $kernel_addr_r zImage
fatload mmc 0 $fdt_addr_r sun8i-r40-bananapi-m2-ultra.dtb
bootz $kernel_addr_r - $fdt_addr_r

View File

@@ -0,0 +1,33 @@
image boot.vfat {
vfat {
files = {
"zImage",
"sun8i-r40-bananapi-m2-ultra.dtb",
"boot.scr"
}
}
size = 64M
}
image sdcard.img {
hdimage {
}
partition u-boot {
in-partition-table = "no"
image = "u-boot-sunxi-with-spl.bin"
offset = 8192
size = 1040384 # 1MB - 8192
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

View File

@@ -0,0 +1,35 @@
Intro
=====
This default configuration will allow you to start experimenting with the
buildroot environment for the Bananapi M2 ULtra. With the current
configuration it will bring-up the board, and allow access through the
serial console.
Bananapi M2 Ultra link:
http://www.banana-pi.org/m2u.html
This configuration uses U-Boot mainline and kernel mainline.
How to build
============
$ make bananapi_m2_ultra_defconfig
$ make
Note: you will need access to the internet to download the required
sources.
How to write the SD card
========================
Once the build process is finished you will have an image called "sdcard.img"
in the output/images/ directory.
Copy the bootable "sdcard.img" onto an SD card with "dd":
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
$ sudo sync
Insert the micro SDcard in your Bananapi M2 Ultra and power it up. The console
is on the serial line, 115200 8N1.

View File

@@ -1,4 +1,8 @@
bootpart=0:1
devtype=mmc
bootdir=
bootargs=console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
uenvcmd=run loadimage;run loadfdt;printenv bootargs;bootz ${loadaddr} - ${fdtaddr};
bootfile=zImage
bootpartition=mmcblk0p2
set_mmc1=if test $board_name = A33515BB; then setenv bootpartition mmcblk1p2; fi
set_bootargs=setenv bootargs console=ttyO0,115200n8 root=/dev/${bootpartition} rw rootfstype=ext4 rootwait
uenvcmd=run set_mmc1; run set_bootargs;run loadimage;run loadfdt;printenv bootargs;bootz ${loadaddr} - ${fdtaddr}

View File

@@ -1,131 +0,0 @@
setenv bootargs ''
if itest.s x6SX == "x${cpu}" || itest.s x7D == "x${cpu}"; then
a_script=0x80800000
a_zImage=0x80800000
a_fdt=0x83000000
m4=''
if itest.s "x1" == "x$m4enabled" ; then
run m4boot;
m4='-m4';
fi
else
a_script=0x10800000
a_zImage=0x10800000
a_fdt=0x13000000
fi
setenv initrd_high 0xffffffff
if itest.s "x" == "x${dtbname}" ; then
if itest.s x6SOLO == "x${cpu}" ; then
dtbname=imx6dl-${board}.dtb;
elif itest.s x6DL == "x${cpu}" ; then
dtbname=imx6dl-${board}.dtb;
elif itest.s x6QP == "x${cpu}" ; then
dtbname=imx6qp-${board}.dtb;
elif itest.s x6SX == "x${cpu}" ; then
dtbname=imx6sx-${board}${m4}.dtb;
elif itest.s x7D == "x${cpu}" ; then
dtbname=imx7d-${board}${m4}.dtb;
else
dtbname=imx6q-${board}.dtb;
fi
fi
if load ${dtype} ${disk}:1 ${a_script} uEnv.txt ; then
env import -t ${a_script} ${filesize}
fi
if itest.s x == x${bootdir} ; then
bootdir=/boot/
fi
if itest.s x${bootpart} == x ; then
bootpart=1
fi
if load ${dtype} ${disk}:${bootpart} ${a_fdt} ${bootdir}${dtbname} ; then
fdt addr ${a_fdt}
setenv fdt_high 0xffffffff
else
echo "!!!! Error loading ${bootdir}${dtbname}";
exit;
fi
cmd_xxx_present=
fdt resize
if itest.s "x" != "x${cmd_custom}" ; then
run cmd_custom
cmd_xxx_present=1;
fi
if itest.s "x" != "x${cmd_hdmi}" ; then
run cmd_hdmi
cmd_xxx_present=1;
if itest.s x == x${allow_noncea} ; then
setenv bootargs ${bootargs} mxc_hdmi.only_cea=1;
echo "only CEA modes allowed on HDMI port";
else
setenv bootargs ${bootargs} mxc_hdmi.only_cea=0;
echo "non-CEA modes allowed on HDMI, audio may be affected";
fi
fi
if itest.s "x" != "x${cmd_lcd}" ; then
run cmd_lcd
cmd_xxx_present=1;
fi
if itest.s "x" != "x${cmd_lvds}" ; then
run cmd_lvds
cmd_xxx_present=1;
fi
if itest.s "x" != "x${cmd_lvds2}" ; then
run cmd_lvds2
cmd_xxx_present=1;
fi
if itest.s "x" == "x${cmd_xxx_present}" ; then
echo "!!!!!!!!!!!!!!!!"
echo "warning: your u-boot may be outdated, please upgrade"
echo "!!!!!!!!!!!!!!!!"
fi
setenv bootargs "${bootargs} console=${console},115200 vmalloc=400M consoleblank=0 rootwait fixrtc"
if test "sata" = "${dtype}" ; then
setenv bootargs "${bootargs} root=/dev/sda${bootpart}" ;
elif test "usb" = "${dtype}" ; then
setenv bootargs "${bootargs} root=/dev/sda${bootpart}" ;
else
setenv bootargs "${bootargs} root=/dev/mmcblk${disk}p${bootpart}"
fi
if itest.s "x" != "x${disable_giga}" ; then
setenv bootargs ${bootargs} fec.disable_giga=1
fi
if itest.s "x" != "x${wlmac}" ; then
setenv bootargs ${bootargs} wlcore.mac=${wlmac}
setenv bootargs ${bootargs} wlan.mac=${wlmac}
fi
if itest.s "x" != "x${gpumem}" ; then
setenv bootargs ${bootargs} galcore.contiguousSize=${gpumem}
fi
if itest.s "x" != "x${cma}" ; then
setenv bootargs ${bootargs} cma=${cma}
fi
if itest.s "x" != "x${show_fdt}" ; then
fdt print /
fi
if itest.s "x" != "x${show_env}" ; then
printenv
fi
if load ${dtype} ${disk}:${bootpart} ${a_zImage} ${bootdir}/zImage ; then
bootz ${a_zImage} - ${a_fdt}
fi
echo "Error loading kernel image"

View File

@@ -1,69 +0,0 @@
if itest.s a$uboot_defconfig == a; then
echo "Please set uboot_defconfig to the appropriate value"
exit
fi
offset=0x400
a_uImage1=0x12000000
a_uImage2=0x12400000
if itest.s x6SX == "x${cpu}" || itest.s x7D == "x${cpu}"; then
a_uImage1=0x82000000
a_uImage2=0x82400000
fi
setenv stdout serial,vga
echo "check U-Boot" ;
if load ${dtype} ${disk}:1 ${a_uImage1} u-boot.$uboot_defconfig ; then
else
echo "No U-Boot image found on SD card" ;
exit
fi
echo "read $filesize bytes from SD card" ;
if sf probe || sf probe || sf probe 1 27000000 || sf probe 1 27000000 ; then
echo "probed SPI ROM" ;
else
echo "Error initializing EEPROM" ;
exit
fi ;
if sf read ${a_uImage2} $offset $filesize ; then
else
echo "Error reading boot loader from EEPROM" ;
exit
fi
if cmp.b ${a_uImage1} ${a_uImage2} $filesize ; then
echo "------- U-Boot versions match" ;
exit
fi
echo "Need U-Boot upgrade" ;
echo "Program in 5 seconds" ;
for n in 5 4 3 2 1 ; do
echo $n ;
sleep 1 ;
done
echo "erasing" ;
sf erase 0 0xC0000 ;
# two steps to prevent bricking
echo "programming" ;
setexpr a1 ${a_uImage1} + 0x400
setexpr o1 ${offset} + 0x400
setexpr s1 ${filesize} - 0x400
sf write ${a1} ${o1} ${s1} ;
sf write ${a_uImage1} $offset 0x400 ;
echo "verifying" ;
if sf read ${a_uImage2} $offset $filesize ; then
else
echo "Error re-reading EEPROM" ;
exit
fi
if cmp.b ${a_uImage1} ${a_uImage2} $filesize ; then
else
echo "Read verification error" ;
exit
fi
while echo "---- U-Boot upgraded. reset" ; do
sleep 120
done

View File

@@ -2,6 +2,8 @@ setenv bootargs ''
setenv initrd_high 0xffffffff
m4=''
kernelimage=zImage
bootcommand=bootz
a_base=0x10000000
if itest.s x51 == "x${imx_cpu}" ; then
a_base=0x90000000
@@ -9,10 +11,14 @@ elif itest.s x53 == "x${imx_cpu}"; then
a_base=0x70000000
elif itest.s x6SX == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
a_base=0x80000000
if itest.s "x1" == "x$m4enabled" ; then
run m4boot;
m4='-m4';
fi
elif itest.s x8MQ == "x${imx_cpu}"; then
a_base=0x40000000
kernelimage=Image
bootcommand=booti
fi
if itest.s "x1" == "x${m4enabled}" ; then
run m4boot;
m4='-m4';
fi
setexpr a_script ${a_base} + 0x00800000
@@ -39,10 +45,12 @@ if itest.s "x" == "x${fdt_file}" ; then
fdt_file=imx6sx-${board}${m4}.dtb;
elif itest.s x7D == "x${imx_cpu}" ; then
fdt_file=imx7d-${board}${m4}.dtb;
elif itest.s x8MQ == "x${imx_cpu}" ; then
fdt_file=imx8mq-${board}${m4}.dtb;
elif itest.s x51 == "x${imx_cpu}" ; then
fdt_file=imx51-${board}${m4}.dtb;
fdt_file=imx51-${board}.dtb;
elif itest.s x53 == "x${imx_cpu}" ; then
fdt_file=imx53-${board}${m4}.dtb;
fdt_file=imx53-${board}.dtb;
else
fdt_file=imx6q-${board}.dtb;
fi
@@ -66,16 +74,12 @@ else
exit;
fi
cmd_xxx_present=
fdt resize
if itest.s "x" != "x${cmd_custom}" ; then
run cmd_custom
cmd_xxx_present=1;
fi
if itest.s "x" != "x${cmd_hdmi}" ; then
run cmd_hdmi
cmd_xxx_present=1;
if itest.s x == x${allow_noncea} ; then
setenv bootargs ${bootargs} mxc_hdmi.only_cea=1;
echo "only CEA modes allowed on HDMI port";
@@ -87,25 +91,18 @@ fi
if itest.s "x" != "x${cmd_lcd}" ; then
run cmd_lcd
cmd_xxx_present=1;
fi
if itest.s "x" != "x${cmd_lcd2}" ; then
run cmd_lcd2
cmd_xxx_present=1;
fi
if itest.s "x" != "x${cmd_lvds}" ; then
run cmd_lvds
cmd_xxx_present=1;
fi
if itest.s "x" != "x${cmd_lvds2}" ; then
run cmd_lvds2
cmd_xxx_present=1;
fi
if itest.s "x" == "x${cmd_xxx_present}" ; then
echo "!!!!!!!!!!!!!!!!"
echo "warning: your u-boot may be outdated, please upgrade"
echo "!!!!!!!!!!!!!!!!"
if itest.s "x" != "x${cmd_mipi}" ; then
run cmd_mipi
fi
if test "sata" = "${devtype}" ; then
@@ -126,7 +123,6 @@ fi
if itest.s "x" != "x${wlmac}" ; then
setenv bootargs ${bootargs} wlcore.mac=${wlmac}
setenv bootargs ${bootargs} wlan.mac=${wlmac}
fi
if itest.s "x" != "x${gpumem}" ; then
@@ -149,7 +145,7 @@ if itest.s "x" != "x${show_env}" ; then
printenv
fi
if load ${devtype} ${devnum}:${distro_bootpart} ${a_zImage} ${prefix}zImage ; then
bootz ${a_zImage} - ${a_fdt}
if load ${devtype} ${devnum}:${distro_bootpart} ${a_zImage} ${prefix}${kernelimage} ; then
${bootcommand} ${a_zImage} - ${a_fdt}
fi
echo "Error loading kernel image"

View File

@@ -6,20 +6,24 @@
#
BOARD_DIR="$(dirname $0)"
UBOOT_DEFCONFIG="$(grep BR2_TARGET_UBOOT_BOARD_DEFCONFIG ${BR2_CONFIG} | sed 's/.*\"\(.*\)\"/\1/')"
if grep -Eq "^BR2_aarch64=y$" ${BR2_CONFIG}; then
MKIMAGE_ARCH=arm64
UBOOT_BINARY=imx8-boot-sd.bin
else
MKIMAGE_ARCH=arm
UBOOT_BINARY=u-boot.imx
fi
# bd u-boot looks for standard bootscript
install -m 0644 -D $BINARIES_DIR/boot.scr $TARGET_DIR/boot/
# legacy 6x_bootscript script
$HOST_DIR/bin/mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
-n "boot script" -d $BOARD_DIR/6x_bootscript.txt $TARGET_DIR/6x_bootscript
$HOST_DIR/bin/mkimage -A $MKIMAGE_ARCH -O linux -T script -C none -a 0 -e 0 \
-n "boot script" -d $BOARD_DIR/boot.cmd $TARGET_DIR/boot/boot.scr
# u-boot / update script for bd upgradeu command
if [ -e $BINARIES_DIR/u-boot.imx ];
then
install -D -m 0644 $BINARIES_DIR/u-boot.imx $TARGET_DIR/u-boot.imx
$HOST_DIR/bin/mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
-n "upgrade script" -d $BOARD_DIR/upgrade.cmd $TARGET_DIR/upgrade.scr
# legacy 6x_upgrade script
$HOST_DIR/bin/mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
-n "upgrade script" -d $BOARD_DIR/6x_upgrade.txt $TARGET_DIR/6x_upgrade
if [ -e $BINARIES_DIR/$UBOOT_BINARY ]; then
install -D -m 0644 $BINARIES_DIR/$UBOOT_BINARY \
$TARGET_DIR/u-boot.$UBOOT_DEFCONFIG
$HOST_DIR/bin/mkimage -A $MKIMAGE_ARCH -O linux -T script -C none -a 0 -e 0 \
-n "upgrade script" -d $BOARD_DIR/upgrade.cmd $TARGET_DIR/upgrade.scr
fi

View File

@@ -7,6 +7,7 @@ offset=0x400
erase_size=0xC0000
qspi_offset=0x0
a_base=0x12000000
block_size=0x200
if itest.s x51 == "x${imx_cpu}"; then
a_base=0x92000000
@@ -14,6 +15,9 @@ elif itest.s x53 == "x${imx_cpu}"; then
a_base=0x72000000
elif itest.s x6SX == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
a_base=0x82000000
elif itest.s x8MQ == "x${imx_cpu}"; then
a_base=0x42000000
offset=0x8400
fi
qspi_match=1
@@ -25,6 +29,54 @@ setexpr a_script ${a_base}
setenv stdout serial,vga
if itest.s "x${sfname}" == "x" ; then
# U-Boot resides in (e)MMC
if itest.s "x${env_dev}" == "x" || itest.s "x${env_part}" == "x"; then
echo "Please set env_dev/part to the appropriate values"
exit
fi
# Load bootloader binary for this board
if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_uImage1} u-boot.$uboot_defconfig ; then
else
echo "File u-boot.$uboot_defconfig not found on SD card" ;
exit
fi
# Compute block count for filesize and offset
setexpr cntoffset ${offset} / ${block_size}
setexpr cntfile ${filesize} / ${block_size}
# Add 1 in case the $filesize is not a multiple of $block_size
setexpr cntfile ${cntfile} + 1
# Select media partition (if different from main partition)
mmc dev ${env_dev} ${env_part}
# Read and compare current U-Boot
mmc read ${a_uImage2} ${cntoffset} ${cntfile}
if cmp.b ${a_uImage1} ${a_uImage2} ${filesize} ; then
echo "------- U-Boot versions match" ;
exit ;
fi
echo "Need U-Boot upgrade" ;
echo "Program in 5 seconds" ;
for n in 5 4 3 2 1 ; do
echo $n ;
sleep 1 ;
done
mmc write ${a_uImage1} ${cntoffset} ${cntfile}
# Make sure to boot from the proper partition
if itest ${env_part} != 0 ; then
mmc partconf ${env_dev} 1 ${env_part} 0
fi
# Switch back to main eMMC partition (to avoid confusion)
mmc dev ${env_dev}
else
# U-Boot resides in NOR flash
if sf probe || sf probe || sf probe 1 27000000 || sf probe 1 27000000 ; then
echo "probed SPI ROM" ;
else
@@ -32,9 +84,13 @@ else
exit
fi
if itest.s "x${sfname}" == "xat45db041d" ; then
erase_size=0x7e000
fi
if itest.s x7D == "x${imx_cpu}"; then
echo "check qspi parameter block" ;
if ${fs}load ${devtype} ${devnum}:1 ${a_qspi1} qspi-${sfname}.${uboot_defconfig} ; then
if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_qspi1} qspi-${sfname}.${uboot_defconfig} ; then
else
echo "parameter file qspi-${sfname}.${uboot_defconfig} not found on SD card"
exit
@@ -63,7 +119,7 @@ fi
echo "check U-Boot" ;
if ${fs}load ${devtype} ${devnum}:1 ${a_uImage1} u-boot.$uboot_defconfig ; then
if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_uImage1} u-boot.$uboot_defconfig ; then
else
echo "File u-boot.$uboot_defconfig not found on SD card" ;
exit
@@ -80,7 +136,7 @@ if cmp.b ${a_uImage1} ${a_uImage2} $filesize ; then
if itest.s "${qspi_match}" == "1" ; then
echo "------- upgrade not needed" ;
if itest.s "x" != "x${next}" ; then
if ${fs}load ${devtype} ${devnum}:1 ${a_script} ${next} ; then
if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_script} ${next} ; then
source ${a_script}
else
echo "${next} not found on SD card"
@@ -142,13 +198,14 @@ if itest.s x7D == "x${imx_cpu}"; then
fi
if itest.s "x" != "x${next}" ; then
if ${fs}load ${devtype} ${devnum}:1 ${a_script} ${next} ; then
if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_script} ${next} ; then
source ${a_script}
else
echo "${next} not found on ${devtype} ${devnum}"
echo "${next} not found on ${devtype} ${devnum}:${distro_bootpart}"
fi
fi
fi
while echo "---- U-Boot upgraded. reset" ; do
while echo "---- U-Boot upgraded. Please reset the board" ; do
sleep 120
done

View File

@@ -0,0 +1,66 @@
From b3a1e97498e7987073775d49a703932c20f2df1d Mon Sep 17 00:00:00 2001
From: Ezequiel Garcia <ezequiel@collabora.com>
Date: Mon, 12 Nov 2018 14:04:46 -0300
Subject: [PATCH] mips: Remove default endiannes
Currently, trying to build ci20_mmc fails on little-endian
toolchains. The problem seems to be that some targets don't
have CONFIG_SYS_LITTLE_ENDIAN properly set, and therefore
the default -EB switch is selected.
Let's get rid of the default switch entirely, and fix this problem.
While this may be a hack, it is a quick solution until
U-Boot gets CI20 proper support.
make ARCH=mips CROSS_COMPILE=mips-linux-gnu- ci20_mmc
Configuring for ci20_mmc - Board: ci20, Options: SPL_MMC_SUPPORT,ENV_IS_IN_MMC
make
make[1]: Entering directory '/home/zeta/repos/u-boot-ci20'
Generating include/autoconf.mk
Generating include/autoconf.mk.dep
mips-linux-gnu-gcc: error: may not use both -EB and -EL
mips-linux-gnu-gcc: error: may not use both -EB and -EL
Generating include/spl-autoconf.mk
mips-linux-gnu-gcc: error: may not use both -EB and -EL
Generating include/tpl-autoconf.mk
mips-linux-gnu-gcc: error: may not use both -EB and -EL
mips-linux-gnu-gcc -DDO_DEPS_ONLY \
-g -Os -ffunction-sections -fdata-sections -D__KERNEL__ -I/home/zeta/repos/u-boot-ci20/include -fno-builtin -ffreestanding -nostdinc -isystem /home/zeta/repos/buildroot/mips/output/host/opt/ext-toolchain/bin/../lib/gcc/mips-linux-gnu/5.3.0/include -pipe -DCONFIG_MIPS -D__MIPS__ -G 0 -EB -msoft-float -fpic -mabicalls -march=mips32 -mabi=32 -DCONFIG_32BIT -mno-branch-likely -Wall -Wstrict-prototypes \
-o lib/asm-offsets.s lib/asm-offsets.c -c -S
if [ -f arch/mips/cpu/xburst/jz4780/asm-offsets.c ];then \
mips-linux-gnu-gcc -DDO_DEPS_ONLY \
-g -Os -ffunction-sections -fdata-sections -D__KERNEL__ -I/home/zeta/repos/u-boot-ci20/include -fno-builtin -ffreestanding -nostdinc -isystem /home/zeta/repos/buildroot/mips/output/host/opt/ext-toolchain/bin/../lib/gcc/mips-linux-gnu/5.3.0/include -pipe -DCONFIG_MIPS -D__MIPS__ -G 0 -EB -msoft-float -fpic -mabicalls -march=mips32 -mabi=32 -DCONFIG_32BIT -mno-branch-likely -Wall -Wstrict-prototypes \
-o arch/mips/cpu/xburst/jz4780/asm-offsets.s arch/mips/cpu/xburst/jz4780/asm-offsets.c -c -S; \
else \
touch arch/mips/cpu/xburst/jz4780/asm-offsets.s; \
fi
mips-linux-gnu-gcc: error: may not use both -EB and -EL
make[1]: *** [Makefile:747: lib/asm-offsets.s] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/zeta/repos/u-boot-ci20'
make: *** [.boards.depend:463: ci20_mmc] Error 2
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
---
https://github.com/MIPS/CI20_u-boot/pull/19
arch/mips/config.mk | 3 ---
1 file changed, 3 deletions(-)
diff --git a/arch/mips/config.mk b/arch/mips/config.mk
index c89279025507..43560abbc0e1 100644
--- a/arch/mips/config.mk
+++ b/arch/mips/config.mk
@@ -20,9 +20,6 @@ ifdef CONFIG_SYS_BIG_ENDIAN
ENDIANNESS := -EB
endif
-# Default to EB if no endianess is configured
-ENDIANNESS ?= -EB
-
PLATFORM_CPPFLAGS += -DCONFIG_MIPS -D__MIPS__
#
--
2.19.1

View File

@@ -0,0 +1,25 @@
From 7e3f2c482bc16537a093e87a27f0d465804a88e4 Mon Sep 17 00:00:00 2001
From: Julien Olivain <juju@cotds.org>
Date: Tue, 11 Dec 2018 23:04:46 +0100
Subject: [PATCH] csky: update cmdline for serial console and rootfs on sda1
Signed-off-by: Julien Olivain <juju@cotds.org>
---
arch/csky/boot/dts/gx6605s.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/csky/boot/dts/gx6605s.dts b/arch/csky/boot/dts/gx6605s.dts
index ce56106af967..f5d60b21e6f9 100644
--- a/arch/csky/boot/dts/gx6605s.dts
+++ b/arch/csky/boot/dts/gx6605s.dts
@@ -155,6 +155,6 @@
};
chosen {
- bootargs = "console=tty0 init=/sbin/init root=/dev/sda2 rw rootwait";
+ bootargs = "console=ttyS0,115200 init=/sbin/init root=/dev/sda1 rw rootwait";
};
};
--
2.19.2

View File

@@ -1,18 +0,0 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
OUTPUT_DIR="${O}/images"
rm -rf "${GENIMAGE_TMP}"
cp board/digilent/zybo/uEnv.txt ${BINARIES_DIR}
cp board/digilent/zybo/system.bit ${BINARIES_DIR}
genimage \
--rootpath "${TARGET_DIR}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \
--config "${GENIMAGE_CFG}"

View File

@@ -1,76 +0,0 @@
Digilent Zybo
=============
This is the Buildroot board support for the Digilent Zybo. The Zybo is
a development board based on the Xilinx Zynq-7000 based All-Programmable
System-On-Chip.
Zybo information including schematics, reference designs, and manuals are
available from http://store.digilentinc.com/zybo-zynq-7000-arm-fpga-soc-trainer-board/ .
If you want a custom FPGA bitstream to be loaded by U-Boot, copy it as
system.bit in board/digilent/zybo/.
Steps to create a working system for Zybo:
1) make zynq_zybo_defconfig
2) make
3) write your SD Card with the sdcard.img file using dd by doing
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
4) insert the SD Card and power up your Zybo
5) Expect serial console on the second USB serial port exposed by the board
The expected output:
U-Boot SPL 2016.05 (May 20 2016 - 16:16:24)
mmc boot
Trying to boot from MMC1
reading system.dtb
spl_load_image_fat_os: error reading image system.dtb, err - -1
reading u-boot-dtb.img
reading u-boot-dtb.img
U-Boot 2016.05 (May 20 2016 - 16:16:24 +0200)
Model: Zynq ZYBO Development Board
Board: Xilinx Zynq
I2C: ready
DRAM: ECC disabled 512 MiB
MMC: sdhci@e0100000: 0
SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB, total 16 MiB
In: serial@e0001000
Out: serial@e0001000
Err: serial@e0001000
Model: Zynq ZYBO Development Board
Board: Xilinx Zynq
Net: ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id
I2C EEPROM MAC address read failed
Warning: ethernet@e000b000 (eth0) using random MAC address - 56:64:dd:a7:6d:94
eth0: ethernet@e000b000
...
Resulting system
----------------
Once the build process is finished you will have an image called "sdcard.img"
in the output/images/ directory.
The first partition is a FAT32 partition created at the beginning of the SD Card
that contains the following files :
/BOOT.BIN
/zynq-zybo.dtb
/uEnv.txt
/system.bit
/uImage
/u-boot-dtb.img
The second partition is an ext4 partition that contains the root filesystem.
You can alter the booting procedure by modifying the uEnv.txt file
in first partition of the SD card. It is a plain text file in format
<key>=<value> one per line:
kernel_image=myimage
modeboot=myboot
myboot=...

View File

@@ -1,5 +0,0 @@
bootargs=root=/dev/mmcblk0p2 rootwait rw rootfstype=ext4
fpga_image=system.bit
fpgaboot=if fatload mmc 0 0x1000000 ${fpga_image}; then echo Booting FPGA from ${fpga_image}; fpga info 0 && fpga loadb 0 0x1000000 $filesize; else echo FPGA image ${fpga_image} was not found, skipping...; fi;
kernel_image=uImage
sdboot=echo Booting from SD...; run fpgaboot; fatload mmc 0 0x1000000 ${kernel_image} && fatload mmc 0 0x2000000 zynq-zybo.dtb && bootm 0x1000000 - 0x2000000

View File

@@ -0,0 +1,17 @@
image sdcard.img {
hdimage {
}
partition u-boot {
in-partition-table = "no"
image = "u-boot.imx"
offset = 1024
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext2"
offset = 1M
size = 60M
}
}

View File

@@ -0,0 +1,38 @@
Buildroot for Embest RIoTboard
==============================
This is a small development board, based on Freescale IMX6 Solo SoC
(single core ARM Cortex-A9).
More details about the board can be found at:
http://www.embest-tech.com/riotboard
1. Compiling buildroot
----------------------
$ make riotboard_defconfig
$ make
2. Installing buildroot
-----------------------
Prepare an SD-card and plug it into your card reader. Always double
check the block device before writing to it, as writing to the wrong
block device can cause irrecoverable data loss. Now you can write the
image to your SD-card:
sudo dd if=output/images/sdcard.img of=/dev/<sdcard-block-device> bs=1M
3. Running buildroot
--------------------
Position the board so you can read the label "RIoTboard" on the right
side of SW1 DIP switches. Configure the SW1 swiches like this:
1 0 1 0 0 1 0 1
ON OFF ON OFF OFF ON OFF ON
Now plug your prepared SD-card in slot J6. Connect a serial console
(115200, 8, N, 1) to header J18. Connect a 5V/1A power supply to the
board and enjoy.

View File

@@ -0,0 +1,6 @@
default buildroot
label buildroot
kernel /boot/zImage
devicetree /boot/imx6dl-riotboard.dtb
append console=ttymxc1,115200 root=/dev/mmcblk1p1 rw

View File

@@ -22,7 +22,7 @@ image sdcard.img {
partition u-boot {
in-partition-table = "no"
image = "u-boot.imx"
image = "%UBOOTBIN%"
offset = 1024
}

View File

@@ -0,0 +1,40 @@
# Minimal SD card image for the Freescale iMX8 boards
#
# We mimic the .sdcard Freescale's image format:
# * the SD card must have 33 kB free space at the beginning,
# * U-Boot is integrated into imx8-boot-sd.bin and is dumped as is,
# * a FAT partition at offset 8MB is containing Image and DTB files
# * a single root filesystem partition is required (ext2, ext3 or ext4)
#
image boot.vfat {
vfat {
files = {
%FILES%
}
}
size = 32M
}
image sdcard.img {
hdimage {
}
partition imx-boot {
in-partition-table = "no"
image = "imx8-boot-sd.bin"
offset = 33K
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
offset = 8M
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext2"
}
}

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
main ()
{
UBOOT_DTB=$2
if [ ! -e "$UBOOT_DTB" ]; then
echo "ERROR: couldn't find dtb: $UBOOT_DTB"
exit 1
fi
cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/lpddr4_pmu_train_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot.bin ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb
rm -f ${BINARIES_DIR}/u-boot.its
${HOST_DIR}/bin/mkimage_imx8 -fit -signed_hdmi ${BINARIES_DIR}/signed_hdmi_imx8m.bin -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
exit $?
}
main $@

View File

@@ -7,10 +7,10 @@
#
dtb_list()
{
local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})"
local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([\/a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})"
for dt in $DTB_LIST; do
echo -n "\"$dt.dtb\", "
echo -n "\"`basename $dt`.dtb\", "
done
}
@@ -23,6 +23,8 @@ linux_image()
{
if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then
echo "\"uImage\""
elif grep -Eq "^BR2_LINUX_KERNEL_IMAGE=y$" ${BR2_CONFIG}; then
echo "\"Image\""
else
echo "\"zImage\""
fi
@@ -30,20 +32,33 @@ linux_image()
genimage_type()
{
if grep -Eq "^BR2_TARGET_UBOOT_SPL=y$" ${BR2_CONFIG}; then
if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
echo "genimage.cfg.template_imx8"
elif grep -Eq "^BR2_TARGET_UBOOT_SPL=y$" ${BR2_CONFIG}; then
echo "genimage.cfg.template_spl"
else
echo "genimage.cfg.template"
fi
}
uboot_image()
{
if grep -Eq "^BR2_TARGET_UBOOT_FORMAT_DTB_IMX=y$" ${BR2_CONFIG}; then
echo "u-boot-dtb.imx"
elif grep -Eq "^BR2_TARGET_UBOOT_FORMAT_IMX=y$" ${BR2_CONFIG}; then
echo "u-boot.imx"
fi
}
main()
{
local FILES="$(dtb_list) $(linux_image)"
local UBOOTBIN="$(uboot_image)"
local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
sed -e "s/%FILES%/${FILES}/" \
-e "s/%UBOOTBIN%/${UBOOTBIN}/" \
board/freescale/common/imx/$(genimage_type) > ${GENIMAGE_CFG}
rm -rf "${GENIMAGE_TMP}"

View File

@@ -0,0 +1,89 @@
From 27a2cd6a1980adf3002412678c8fdec6528dc47d Mon Sep 17 00:00:00 2001
From: Trent Piepho <tpiepho@impinj.com>
Date: Fri, 6 Apr 2018 17:11:27 -0700
Subject: [PATCH] imx: Create distinct pre-processed mkimage config files
Each imx image is created by a separate sub-make and during this process
the mkimage config file is run though cpp.
The cpp output is to the same file no matter what imx image is being
created.
This means if two imx images are generated in parallel they will attempt
to independently produce the same pre-processed mkimage config file at
the same time.
Avoid the problem by making the pre-processed config file name unique
based on the imx image it will be used in. This way each image will
create a unique config file and they won't clobber each other when run
in parallel.
This should fixed the build bug referenced in b5b0e4e3 ("imximage:
Remove failure when no IVT offset is found").
Cc: Breno Lima <breno.lima@nxp.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Trent Piepho <tpiepho@impinj.com>
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
[fabio: Adapted to imx_v2017.03_4.9.11_1.0.0_ga]
Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
arch/arm/imx-common/Makefile | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/arch/arm/imx-common/Makefile b/arch/arm/imx-common/Makefile
index d862258..f1bae8d 100644
--- a/arch/arm/imx-common/Makefile
+++ b/arch/arm/imx-common/Makefile
@@ -69,9 +69,11 @@ endif
quiet_cmd_cpp_cfg = CFGS $@
cmd_cpp_cfg = $(CPP) $(cpp_flags) -x c -o $@ $<
-IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%).cfgtmp
+# mkimage source config file
+IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%)
-$(IMX_CONFIG): %.cfgtmp: % FORCE
+# How to create a cpp processed config file, they all use the same source
+%.cfgout: $(IMX_CONFIG) FORCE
$(Q)mkdir -p $(dir $@)
$(call if_changed_dep,cpp_cfg)
@@ -79,7 +81,7 @@ MKIMAGEFLAGS_u-boot.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T imxim
-e $(CONFIG_SYS_TEXT_BASE)
u-boot.imx: MKIMAGEOUTPUT = u-boot.imx.log
-u-boot.imx: u-boot.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
+u-boot.imx: u-boot.bin u-boot.cfgout $(PLUGIN).bin FORCE
$(call if_changed,mkimage)
ifeq ($(CONFIG_OF_SEPARATE),y)
@@ -87,16 +89,15 @@ MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T i
-e $(CONFIG_SYS_TEXT_BASE)
u-boot-dtb.imx: MKIMAGEOUTPUT = u-boot-dtb.imx.log
-u-boot-dtb.imx: u-boot-dtb.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
+u-boot-dtb.imx: u-boot-dtb.bin u-boot-dtb.cfgout $(PLUGIN).bin FORCE
$(call if_changed,mkimage)
endif
MKIMAGEFLAGS_SPL = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T imximage \
-e $(CONFIG_SPL_TEXT_BASE)
-
SPL: MKIMAGEOUTPUT = SPL.log
-SPL: spl/u-boot-spl.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
+SPL: spl/u-boot-spl.bin spl/u-boot-spl.cfgout $(PLUGIN).bin FORCE
$(call if_changed,mkimage)
MKIMAGEFLAGS_u-boot.uim = -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \
@@ -124,4 +125,4 @@ cmd_u-boot-nand-spl_imx = (printf '\000\000\000\000\106\103\102\040\001' && \
spl/u-boot-nand-spl.imx: SPL FORCE
$(call if_changed,u-boot-nand-spl_imx)
-targets += $(addprefix ../../../,$(IMX_CONFIG) SPL u-boot.uim spl/u-boot-nand-spl.imx)
+targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
--
2.7.4

View File

@@ -0,0 +1,80 @@
***************************
Freescale i.MX8MQ EVK board
***************************
This file documents the Buildroot support for the Freescale i.MX8MQ
EVK board.
Build
=====
First, configure Buildroot for the i.MX8MQ EVK board:
make freescale_imx8mqevk_defconfig
Build all components:
make
You will find in output/images/ the following files:
- bl31.bin
- boot.vfat
- fsl-imx8mq-evk.dtb
- Image
- imx8-boot-sd.bin
- lpddr4_pmu_train_fw.bin
- rootfs.ext2
- rootfs.ext4
- rootfs.tar
- sdcard.img
- signed_hdmi_imx8m.bin
- u-boot.bin
- u-boot.imx
- u-boot-nodtb.bin
- u-boot-spl-ddr.bin
Create a bootable SD card
=========================
To determine the device associated to the SD card have a look in the
/proc/partitions file:
cat /proc/partitions
Buildroot prepares a bootable "sdcard.img" image in the output/images/
directory, ready to be dumped on a SD card. Launch the following
command as root:
dd if=output/images/sdcard.img of=/dev/<your-sd-device>
*** WARNING! This will destroy all the card content. Use with care! ***
For details about the medium image layout, see the definition in
board/freescale/common/imx/genimage.cfg.template_imx8.
Boot the i.MX8MQ EVK board
==========================
To boot your newly created system:
- insert the SD card in the SD slot of the board;
- Configure the switches as follows:
SW801: ON ON OFF OFF
SW802: ON OFF
- put a micro USB cable into the Debug USB Port and connect using a terminal
emulator at 115200 bps, 8n1;
- power on the board.
Enable HDMI output
==================
To enable HDMI output at boot you must provide the video kernel boot
argument. To set the video boot argument from U-Boot run after
stopping in U-Boot prompt:
setenv mmcargs 'setenv bootargs console=${console} root=${mmcroot} video=HDMI-A-1:1920x1080-32@60'
saveenv
reset
Change screen resolution to suit your connected display.
Enjoy!

View File

@@ -0,0 +1,25 @@
The bootloader is no longer buildable in the latest Freescale/NXP tree or
upstream. As such, retrieve the "Image: SDK V1.2 e500v2 Binary ISO" from
NXP downloads and follow the release notes for reflashing.
For programming the kernel and rootfs created by buildroot into the flash.
The fast way is to tftp transfer the files via one of the network interfaces.
Make sure your devkit has ipaddr and serverip defined to reach your tftp
server.
(Assuming the default u-boot env from NXP)
1. Program the DTB to NOR flash
=> setenv dtbfile p1025twr.dtb
=> run dtbflash
2. Program the kernel and rootfs to NOR flash (reusing orignal rootfs
NOR location, as the kernel location is to small)
=> tftpboot $loadaddr uImage; protect off 0xeeb80000 +$filesize; erase 0xeeb80000 +$filesize; cp.b $loadaddr 0xeeb80000 $filesize; protect on 0xeeb80000 +$filesize; cmp.b $loadaddr 0xefa80000 $filesize
3. Booting your new system
=> bootm 0xeeb80000 - 0xefe80000
You can login with user "root".

View File

@@ -0,0 +1,24 @@
For the bootloader, NXP has stablized at SDK2.0 (final release). It is
suggested to download the prebuilt from NXP downloads and follow the
release notes for reflashing.
To program the kernel and rootfs created by buildroot into the flash. The
fast way is to tftp transfer the files via one of the network interfaces.
Make sure your devkit has ipaddr and serverip defined to reach your tftp
server.
(Assuming the default u-boot env from NXP)
1. Program the DTB to NOR flash
=> tftpboot $loadaddr t1040d4rdb.dtb; protect off 0xe8800000 +$filesize; erase 0xe8800000 +$filesize; cp.b $loadaddr 0xe8800000 $filesize; protect on 0xe8800000 +$filesize; cmp.b $loadaddr 0xe8800000 $filesize
2. Program the kernel and rootfs to NOR flash
=> tftpboot $loadaddr uImage; protect off 0xe8020000 +$filesize; erase 0xe8020000 +$filesize; cp.b $loadaddr 0xe8020000 $filesize; protect on 0xe8020000 +$filesize; cmp.b $loadaddr 0xe8020000 $filesize
=> tftpboot $loadaddr rootfs.cpio.uboot; protect off 0xe9300000 +$filesize; erase 0xe9300000 +$filesize; cp.b $loadaddr 0xe9300000 $filesize; protect on 0xe9300000 +$filesize; cmp.b $loadaddr 0xe9300000 $filesize
3. Booting your new system
=> boot
You can login with user "root".

View File

@@ -1,87 +0,0 @@
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_GZIP is not set
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
# CONFIG_RD_LZ4 is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_UID16 is not set
# CONFIG_SGETMASK_SYSCALL is not set
# CONFIG_SYSFS_SYSCALL is not set
# CONFIG_KALLSYMS is not set
# CONFIG_BUG is not set
# CONFIG_BASE_FULL is not set
# CONFIG_ADVISE_SYSCALLS is not set
# CONFIG_MEMBARRIER is not set
CONFIG_EMBEDDED=y
# CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set
CONFIG_MODULES=y
# CONFIG_BLOCK is not set
CONFIG_BF512=y
# CONFIG_SET_GENERIC_CLOCKEVENTS is not set
# CONFIG_I_ENTRY_L1 is not set
# CONFIG_EXCPT_IRQ_SYSC_L1 is not set
# CONFIG_DO_IRQ_L1 is not set
# CONFIG_CORE_TIMER_IRQ_L1 is not set
# CONFIG_IDLE_L1 is not set
# CONFIG_SCHEDULE_L1 is not set
# CONFIG_ARITHMETIC_OPS_L1 is not set
# CONFIG_ACCESS_OK_L1 is not set
# CONFIG_MEMSET_L1 is not set
# CONFIG_MEMCPY_L1 is not set
# CONFIG_STRCMP_L1 is not set
# CONFIG_STRNCMP_L1 is not set
# CONFIG_STRCPY_L1 is not set
# CONFIG_STRNCPY_L1 is not set
# CONFIG_SYS_BFIN_SPINLOCK_L1 is not set
# CONFIG_CACHELINE_ALIGNED_L1 is not set
# CONFIG_DCACHE_FLUSH_L1 is not set
# CONFIG_APP_STACK_L1 is not set
# CONFIG_BFIN_INS_LOWOVERHEAD is not set
# CONFIG_BFIN_ICACHE is not set
# CONFIG_BFIN_DCACHE is not set
# CONFIG_C_AMCKEN is not set
CONFIG_BINFMT_ELF_FDPIC=y
CONFIG_BINFMT_FLAT=y
# CONFIG_COREDUMP is not set
# CONFIG_SUSPEND is not set
# CONFIG_UEVENT_HELPER is not set
# CONFIG_STANDALONE is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
# CONFIG_FW_LOADER is not set
# CONFIG_ALLOW_DEV_COREDUMP is not set
# CONFIG_INPUT is not set
# CONFIG_SERIO is not set
# CONFIG_VT is not set
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_BFIN=y
CONFIG_SERIAL_BFIN_CONSOLE=y
CONFIG_SERIAL_BFIN_UART0=y
CONFIG_SERIAL_BFIN_UART1=y
# CONFIG_BFIN_OTP is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_HWMON is not set
# CONFIG_USB_SUPPORT is not set
# CONFIG_MANDATORY_FILE_LOCKING is not set
# CONFIG_DNOTIFY is not set
# CONFIG_MISC_FILESYSTEMS is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf-8"
CONFIG_PRINTK_TIME=y
# CONFIG_ENABLE_WARN_DEPRECATED is not set
# CONFIG_ENABLE_MUST_CHECK is not set
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHED_DEBUG is not set
# CONFIG_FTRACE is not set
# CONFIG_DEBUG_VERBOSE is not set
# CONFIG_DEBUG_HUNT_FOR_ZERO is not set
# CONFIG_DEBUG_BFIN_HWTRACE_ON is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_ACCESS_CHECK is not set
# CONFIG_CRC32 is not set

View File

@@ -1,11 +0,0 @@
Run the simulation with GDB for FDPIC:
./output/host/bin/bfin-buildroot-linux-uclibc-run --env operating --model bf512 output/images/vmlinux
Run the simulation with GDB for FLAT:
./output/host/bin/bfin-buildroot-uclinux-uclibc-run --env operating --model bf512 output/images/vmlinux
The login prompt will appear in the terminal that started GDB.
Tested with GDB 7.9

View File

@@ -1,4 +0,0 @@
#!/bin/sh
# no simulated network devices at the moment
rm -f ${TARGET_DIR}/etc/init.d/S40network
rm -rf ${TARGET_DIR}/etc/network/

View File

@@ -0,0 +1,38 @@
ODROIDXU-UBOOT-CONFIG
# U-Boot Parameters
setenv initrd_high "0xffffffff"
setenv fdt_high "0xffffffff"
setenv macaddr "00:1e:06:61:7a:39"
setenv bootrootfs "console=tty1 root=/dev/mmcblk1p2 rootwait rw fsck.repair=yes net.ifnames=0"
setenv bootcmd "load mmc 0:1 0x40008000 zImage; load mmc 0:1 0x44000000 exynos5422-odroidxu4.dtb; bootz 0x40008000 - 0x44000000"
setenv vout "hdmi"
setenv governor "performance"
setenv HPD "true"
# TMDS data amplitude control.
setenv hdmi_tx_amp_lvl "31"
# TMDS data amplitude fine control for each channel.
setenv hdmi_tx_lvl_ch0 "3"
setenv hdmi_tx_lvl_ch1 "3"
setenv hdmi_tx_lvl_ch2 "3"
# TMDS data pre-emphasis level control.
setenv hdmi_tx_emp_lvl "6"
# TMDS clock amplitude control.
setenv hdmi_clk_amp_lvl "31"
# TMDS data source termination resistor control.
setenv hdmi_tx_res "0"
setenv hdmi_phy_control "hdmi_tx_amp_lvl=${hdmi_tx_amp_lvl} hdmi_tx_lvl_ch0=${hdmi_tx_lvl_ch0} hdmi_tx_lvl_ch1=${hdmi_tx_lvl_ch1} hdmi_tx_lvl_ch2=${hdmi_tx_lvl_ch2} hdmi_tx_emp_lvl=${hdmi_tx_emp_lvl} hdmi_clk_amp_lvl=${hdmi_clk_amp_lvl} hdmi_tx_res=${hdmi_tx_res} HPD=${HPD} vout=${vout}"
# final boot args
setenv bootargs "${bootrootfs} ${videoconfig} smsc95xx.macaddr=${macaddr} governor=${governor} ${hdmi_phy_control}"
# Boot the board
boot

View File

@@ -0,0 +1,54 @@
image boot.vfat {
vfat {
files = {
"boot.ini",
"zImage",
"exynos5422-odroidxu4.dtb"
}
}
size = 32M
}
image sdcard.img {
hdimage {
}
partition bl1 {
in-partition-table = "no"
image = "bl1.bin.hardkernel"
offset = 512
size = 15360
}
partition bl2 {
in-partition-table = "no"
image = "bl2.bin.hardkernel.720k_uboot"
offset = 15872
size = 16384
}
partition u-boot {
in-partition-table = "no"
image = "u-boot-dtb.bin"
offset = 32256
size = 720k
}
partition tzsw {
in-partition-table = "no"
image = "tzsw.bin.hardkernel"
offset = 769536
size = 256k
}
partition vfat {
partition-type = 0xC
image = "boot.vfat"
offset = 2097152
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

View File

@@ -0,0 +1,24 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
cp ${BOARD_DIR}/boot.ini ${BINARIES_DIR}/
# The bl1.bin.hardkernel file provided by the uboot hardkernel repository is overwritten
# by the bl2.bin.hardkernel in the sd_fusing.sh script because it is too big.
# In order to implement this in genimage, we need to truncate the bl1.bin file
# so that it does not exceed the available place.
# An issue has been filled about this: https://github.com/hardkernel/u-boot/issues/45
truncate -s 15360 ${BINARIES_DIR}/bl1.bin.hardkernel
rm -rf "${GENIMAGE_TMP}"
genimage \
--rootpath "${TARGET_DIR}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \
--config "${GENIMAGE_CFG}"

View File

@@ -0,0 +1,37 @@
Odroid XU-4 board with Samsung Exynos 5422 SoC
How to build it
===============
$ make odroidxu4_defconfig
Then you can edit the build options using
$ make menuconfig
Compile all and build rootfs image:
$ make
Note: you will need to have access to the network, since Buildroot will
download the packages' sources.
Result of the build
-------------------
After building, you should obtain all output files in output/images/
How to write the SD card or eMMC
================================
Once the build process is finished you will have an image called "sdcard.img"
in the output/images/ directory.
Copy the bootable "sdcard.img" onto an SD card or eMMC with "dd":
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
Insert the SDcard into your ODROID-XU4, and power it up. Your new system
should come up now.

View File

@@ -16,10 +16,15 @@ image flash.bin {
flashtype = "nor-16M-256"
partition uboot {
image = "u-boot.bin"
size = 320K
size = 256K
}
partition dtb {
image = "da850-lego-ev3.dtb"
size = 64K
offset = 0x40000
}
partition uimage {
image = "uImage.da850-lego-ev3"
image = "uImage"
size = 4M
offset = 0x50000
}
@@ -35,7 +40,10 @@ image flash.bin {
image boot.vfat {
vfat {
file uImage {
image = "uImage.da850-lego-ev3"
image = "uImage"
}
file da850-lego-ev3.dtb {
image = "da850-lego-ev3.dtb"
}
}
size = 16M

View File

@@ -1,3 +1,4 @@
CONFIG_ARM_APPENDED_DTB=n
CONFIG_ARCH_DAVINCI_DM644x=n
CONFIG_ARCH_DAVINCI_DM355=n
CONFIG_ARCH_DAVINCI_DM646x=n
@@ -60,3 +61,8 @@ CONFIG_DRM_DUMB_VGA_DAC=n
CONFIG_DRM_TINYDRM=y
CONFIG_TINYDRM_ST7586=y
CONFIG_FB_DA8XX=n
CONFIG_COMMON_CLK_PWM=y
CONFIG_BT=y
CONFIG_BT_HS=n
CONFIG_BT_LE=n
CONFIG_RFKILL=y

View File

@@ -1,31 +0,0 @@
From cdd8d11858fa34f6e813fae46b5556e9fb3570dc Mon Sep 17 00:00:00 2001
From: David Lechner <david@lechnology.com>
Date: Sun, 19 Nov 2017 19:54:32 -0600
Subject: [PATCH] configs: legoev3: increase flash image sizes
This increases the kernel image to 4M and the rootfs image to 10M.
It is getting hard to get a kernel image to fit in 3M and the rootfs image
size now matches the filesyssize variable.
Signed-off-by: David Lechner <david@lechnology.com>
---
include/configs/legoev3.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/legoev3.h b/include/configs/legoev3.h
index 79fa3c4..2eeaf85 100644
--- a/include/configs/legoev3.h
+++ b/include/configs/legoev3.h
@@ -204,7 +204,7 @@
"mmcargs=setenv bootargs mem=${memsize} console=${console} root=/dev/mmcblk0p2 rw rootwait lpj=747520\0" \
"mmcboot=bootm ${loadaddr}\0" \
"flashargs=setenv bootargs mem=${memsize} initrd=${filesysaddr},${filesyssize} root=/dev/ram0 rw rootfstype=squashfs console=${console} lpj=747520\0" \
- "flashboot=sf probe 0; sf read ${loadaddr} 0x50000 0x300000; sf read ${filesysaddr} 0x350000 0x960000; bootm ${loadaddr}\0" \
+ "flashboot=sf probe 0; sf read ${loadaddr} 0x50000 0x400000; sf read ${filesysaddr} 0x450000 0xA00000; bootm ${loadaddr}\0" \
"loadimage=fatload mmc 0 ${loadaddr} uImage\0" \
"loadbootscr=fatload mmc 0 ${bootscraddr} boot.scr\0" \
"bootscript=source ${bootscraddr}\0" \
--
2.7.4

View File

@@ -70,6 +70,13 @@ official Lego Mindstorms EV3 programming software firmware update tool to load
the image. To use sdcard.img, use a disk writing tool such as Etcher or dd to
write the image to the µSD card.
NOTE: The sdcard.img created by lego_ev3_defconfig won't boot if the official
LEGO firmware is installed on the EV3 (it has an old version of U-Boot that
doesn't know about device tree). You must either set the kernel configuration
option to append the device tree to the kernel or you can create a boot.scr
that chainloads a newer U-Boot or you can install a newer U-Boot in the flash
memory (just flashing u-boot.bin is enough).
Finish
======
@@ -80,3 +87,13 @@ See:
- http://botbench.com/blog/2013/08/05/mindsensors-ev3-usb-console-adapter/
The serial port config to use is 115200/8-N-1.
Bluetooth
=========
To enable Bluetooth:
# modprobe hci_uart
# /usr/libexec/bluetooth/bluetoothd &
# bluetoothctl
[bluetooth]# power on

View File

@@ -0,0 +1 @@
../a20_olinuxino/boot.cmd

View File

@@ -0,0 +1 @@
../a20_olinuxino/genimage.cfg

View File

@@ -0,0 +1 @@
../a20_olinuxino/post-build.sh

View File

@@ -0,0 +1,57 @@
A10-OLinuXino-LIME
Intro
=====
These are open hardware boards, all based on the Allwinner A10 SoC.
for more details about the boards see the following pages:
- https://www.olimex.com/Products/OLinuXino/open-source-hardware
- https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/
The following defconfigs are available:
- olimex_a10_olinuxino_lime_defconfig
for the A10-OLinuXino-LIME board using mainline kernel
(see http://linux-sunxi.org/Linux_Kernel for more details)
How to build it
===============
Configure Buildroot:
$ make <board>_defconfig
Compile everything and build the rootfs image:
$ make
Result of the build
-------------------
After building, you should get a tree like this:
output/images/
+-- boot.scr
+-- rootfs.ext2
+-- rootfs.ext4 -> rootfs.ext2
+-- sdcard.img
+-- sun4i-a10-olinuxino-lime.dtb (lime, mainline)
+-- u-boot.bin
+-- u-boot-sunxi-with-spl.bin
`-- zImage
How to write the SD card
========================
The sdcard.img file is a complete bootable image ready to be written
on the boot medium. To install it, simply copy the image to a uSD
card:
# dd if=output/images/sdcard.img of=/dev/sdX
Where 'sdX' is the device node of the uSD.
Eject the SD card, insert it in the A10-OLinuXino board, and power it up.

View File

@@ -16,7 +16,7 @@ The following defconfigs are available:
for the A20-OLinuXino-MICRO board using mainline kernel
- olimex_a20_olinuxino_lime_defconfig
for the A20-OLinuXino-LIME board using mainline kernel
- olimex_a20_olinuxino_lime_mali_defconfig
- olimex_a20_olinuxino_lime_legacy_defconfig
for the A20-OLinuXino-LIME board using legacy linux-sunxi kernel
- olimex_a20_olinuxino_lime2_defconfig
for the A20-OLinuXino-LIME2 board using mainline kernel
@@ -51,7 +51,7 @@ After building, you should get a tree like this:
output/images/
+-- rootfs.ext2
+-- rootfs.ext4 -> rootfs.ext2
+-- script.bin (lime_mali)
+-- script.bin (lime_legacy)
+-- sdcard.img
+-- sun7i-a20-olinuxino-lime.dtb (lime, mainline)
+-- sun7i-a20-olinuxino-lime2.dtb (lime2, mainline)

View File

@@ -6,3 +6,10 @@ CONFIG_CFG80211_WEXT=y
# wireless drivers
CONFIG_WLAN=y
# hdmi
CONFIG_DRM_SUN8I_DW_HDMI=y
CONFIG_SUN8I_DE2_CCU=y
# analog audio
CONFIG_SND_SUN8I_CODEC_ANALOG=y

View File

@@ -0,0 +1,4 @@
label linux
kernel /Image
devicetree /sun50i-h6-orangepi-lite2.dtb
append console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait

View File

@@ -0,0 +1,33 @@
image boot.vfat {
vfat {
files = {
"Image",
"sun50i-h6-orangepi-lite2.dtb",
"extlinux"
}
}
size = 64M
}
image sdcard.img {
hdimage {
}
partition u-boot {
in-partition-table = "no"
image = "u-boot-sunxi-with-spl.bin"
offset = 8192
size = 1040384 # 1MB - 8192
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

View File

@@ -0,0 +1,4 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf

View File

@@ -0,0 +1,44 @@
Intro
=====
This default configuration will allow you to start experimenting with the
buildroot environment for the Orangepi Lite2. With the current configuration
it will bring-up the board, and allow access through the serial console.
Orangepi Lite2 link:
http://www.orangepi.org/Orange%20Pi%20Lite%202/
Wiki link:
https://openedev.amarulasolutions.com/display/ODWIKI/Orangepi+Lite2
How to build
============
$ make orangepi_lite2_defconfig
$ make
Note: you will need access to the internet to download the required
sources.
How to write the SD card
========================
Once the build process is finished you will have an image called "sdcard.img"
in the output/images/ directory.
Copy the bootable "sdcard.img" onto an SD card with "dd":
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
$ sudo sync
Insert the micro SDcard in your Orangepi Lite2 and power it up. The console
is on the serial line, 115200 8N1.
WiFi
====
# wpa_passphrase ACCESSPOINTNAME >> /etc/wpa_supplicant.conf
(type password and enter)
# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B
# udhcpc -i wlan0
# ping google.com

View File

@@ -0,0 +1,82 @@
#AP6255_NVRAM_V1.0_29052015
NVRAMRev=$Rev: 498373 $
sromrev=11
vendid=0x14e4
devid=0x43ab
manfid=0x2d0
prodid=0x06e4
macaddr=00:90:4c:c5:12:38
nocrc=1
boardtype=0x6e4
boardrev=0x1304
xtalfreq=37400
#boardflags: 5GHz eTR switch by default
#2.4GHz eTR switch by default
#bit1 for btcoex
boardflags=0x00080201
boardflags2=0x40000000
boardflags3=0x48200100
rxgains2gelnagaina0=0
rxgains2gtrisoa0=0
rxgains2gtrelnabypa0=0
rxgains5gelnagaina0=0
rxgains5gtrisoa0=0
rxgains5gtrelnabypa0=0
rxchain=1
txchain=1
aa2g=1
aa5g=1
tssipos5g=1
tssipos2g=1
femctrl=0
AvVmid_c0=0,157,1,126,1,126,1,126,1,126
pa2ga0=-112,6296,-662
pa2ga1=-165,3699,-515
pa5ga0=-143,6016,-683,-141,6013,-678,-137,5988,-670,-136,5982,-670
pa5ga1=-161,3544,-499,-166,3543,-497,-169,3569,-497,-171,3598,-498
itrsw=1
pdoffset2g40ma0=10
pdoffset40ma0=0xaaaa
pdoffset80ma0=0xaaaa
extpagain5g=2
extpagain2g=2
tworangetssi2g=1
tworangetssi5g=1
# LTECX flags
# WCI2
ltecxmux=0
ltecxpadnum=0x0504
ltecxfnsel=0x22
ltecxgcigpio=0x32
maxp2ga0=64
ofdmlrbw202gpo=0x0033
dot11agofdmhrbw202gpo=0x1553
mcsbw202gpo=0x99355533
maxp5ga0=80,82,76,77
mcsbw205glpo=0x99755000
mcsbw205gmpo=0x9df55000
mcsbw205ghpo=0x99855000
mcsbw405glpo=0xb8555000
mcsbw405gmpo=0xed955000
mcsbw405ghpo=0xd9755000
mcsbw805glpo=0xc8555000
mcsbw805gmpo=0xe9555000
mcsbw805ghpo=0xd9555000
swctrlmap_2g=0x00040004,0x00020002,0x00040004,0x010a02,0x1ff
swctrlmap_5g=0x00100010,0x00200020,0x00100010,0x010a02,0x2f4
swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x000
swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x000
vcodivmode=1
deadman_to=481500000
ed_thresh2g=-54
ed_thresh5g=-54
muxenab=0x10

View File

@@ -0,0 +1,4 @@
label linux
kernel /Image
devicetree /sun50i-h6-orangepi-one-plus.dtb
append console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait

View File

@@ -0,0 +1,33 @@
image boot.vfat {
vfat {
files = {
"Image",
"sun50i-h6-orangepi-one-plus.dtb",
"extlinux"
}
}
size = 64M
}
image sdcard.img {
hdimage {
}
partition u-boot {
in-partition-table = "no"
image = "u-boot-sunxi-with-spl.bin"
offset = 8192
size = 1040384 # 1MB - 8192
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

View File

@@ -0,0 +1,4 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf

View File

@@ -0,0 +1,37 @@
Intro
=====
This default configuration will allow you to start experimenting with the
buildroot environment for the Orangepi One Plus. With the current configuration
it will bring-up the board, and allow access through the serial console.
Orangepi One Plus link:
http://www.orangepi.org/OrangePiOneplus/
Wiki link:
https://openedev.amarulasolutions.com/display/ODWIKI/Orangepi+One+Plus
This configuration uses U-Boot mainline and kernel mainline.
How to build
============
$ make orangepi_one_plus_defconfig
$ make
Note: you will need access to the internet to download the required
sources.
How to write the SD card
========================
Once the build process is finished you will have an image called "sdcard.img"
in the output/images/ directory.
Copy the bootable "sdcard.img" onto an SD card with "dd":
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
$ sudo sync
Insert the micro SDcard in your Orangepi One Plus and power it up. The console
is on the serial line, 115200 8N1.

View File

@@ -0,0 +1,5 @@
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_REGULATOR_SY8106A=y
CONFIG_DRM_SUN8I_DW_HDMI=y
CONFIG_SUN8I_DE2_CCU=y
CONFIG_SND_SUN8I_CODEC_ANALOG=y

View File

@@ -0,0 +1,10 @@
# wireless core
CONFIG_WIRELESS=y
CONFIG_CFG80211=y
CONFIG_MAC80211=y
CONFIG_CFG80211_WEXT=y
# wireless drivers
CONFIG_WLAN=y
CONFIG_WLAN_VENDOR_BROADCOM=y
CONFIG_BRCMFMAC=m

View File

@@ -1,30 +0,0 @@
From f88e9301948173dd35afad4a6939092c7f269aed Mon Sep 17 00:00:00 2001
From: Sergey Matyukevich <geomatsi@gmail.com>
Date: Fri, 3 Nov 2017 22:58:54 +0300
Subject: [PATCH] arm64: dts: orange-pi-zero-plus2: fix sdcard detect
The sdcard detect pin on orange-pi-zero-plus2 is pulled up.
Fix cd-gpio description to enable sdcard detect.
Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts
index b6b7a56..a42fd79 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts
@@ -71,7 +71,7 @@
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
vmmc-supply = <&reg_vcc3v3>;
bus-width = <4>;
- cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
status = "okay";
};
--
1.9.1

View File

@@ -0,0 +1,54 @@
#AP6212_NVRAM_V1.0_20140603
# 2.4 GHz, 20 MHz BW mode
# The following parameter values are just placeholders, need to be updated.
manfid=0x2d0
prodid=0x0726
vendid=0x14e4
devid=0x43e2
boardtype=0x0726
boardrev=0x1101
boardnum=22
macaddr=00:90:4c:c5:12:38
sromrev=11
boardflags=0x00404201
xtalfreq=26000
nocrc=1
ag0=255
aa2g=1
ccode=ALL
pa0itssit=0x20
extpagain2g=0
#PA parameters for 2.4GHz, measured at CHIP OUTPUT
pa2ga0=-168,7161,-820
AvVmid_c0=0x0,0xc8
cckpwroffset0=5
# PPR params
maxp2ga0=90
txpwrbckof=6
cckbw202gpo=0x5555
legofdmbw202gpo=0x77777777
mcsbw202gpo=0xaaaaaaaa
# OFDM IIR :
ofdmdigfilttype=7
# PAPD mode:
papdmode=2
il0macaddr=00:90:4c:c5:12:38
wl0id=0x431b
#OOB parameters
hostwake=0x40
hostrdy=0x41
usbrdy=0x03
usbrdydelay=100
deadman_to=0xffffffff
# muxenab: 0x1 for UART enable, 0x10 for Host awake
muxenab=0x10
# CLDO PWM voltage settings - 0x4 - 1.1 volt
#cldo_pwm=0x4

View File

@@ -15,3 +15,6 @@ CONFIG_CFG80211_WEXT=y
# wireless drivers
CONFIG_WLAN=y
# ondemand cpufreq governor
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y

0
bsp/buildroot/board/pc/grub-efi.cfg Executable file → Normal file
View File

View File

@@ -82,3 +82,4 @@ CONFIG_EXT4_FS=y
CONFIG_FUSE_FS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_SQUASHFS=y
CONFIG_UNWINDER_FRAME_POINTER=y

View File

@@ -0,0 +1,10 @@
#!/bin/sh
set -e
BOARD_DIR=$(dirname "$0")
cp -f "$BOARD_DIR/grub-bios.cfg" "$TARGET_DIR/boot/grub/grub.cfg"
# Copy grub 1st stage to binaries, required for genimage
cp -f "$HOST_DIR/lib/grub/i386-pc/boot.img" "$BINARIES_DIR"

View File

@@ -0,0 +1,62 @@
#!/bin/sh
set -e
cd ${BINARIES_DIR}
# GPT partition type UUIDs
esp_type=c12a7328-f81f-11d2-ba4b-00a0c93ec93b
linux_type=44479540-f297-41b2-9af7-d131d5f0458a
# Partition UUIDs
efi_part_uuid=$(uuidgen)
root_part_uuid=$(uuidgen)
# Boot partition offset and size, in 512-byte sectors
efi_part_start=64
efi_part_size=32768
# Rootfs partition offset and size, in 512-byte sectors
root_part_start=$(( efi_part_start + efi_part_size ))
root_part_size=$(( $(stat -c %s rootfs.ext2) / 512 ))
first_lba=34
last_lba=$(( root_part_start + root_part_size ))
# Disk image size in 512-byte sectors
image_size=$(( last_lba + first_lba ))
cat > efi-part/EFI/BOOT/grub.cfg <<EOF
set default="0"
set timeout="5"
menuentry "Buildroot" {
linux /bzImage root=PARTUUID=$root_part_uuid rootwait console=tty1
}
EOF
# Create EFI system partition
rm -f efi-part.vfat
dd if=/dev/zero of=efi-part.vfat bs=512 count=0 seek=$efi_part_size
mkdosfs efi-part.vfat
mcopy -bsp -i efi-part.vfat efi-part/startup.nsh ::startup.nsh
mcopy -bsp -i efi-part.vfat efi-part/EFI ::EFI
mcopy -bsp -i efi-part.vfat bzImage ::bzImage
rm -f disk.img
dd if=/dev/zero of=disk.img bs=512 count=0 seek=$image_size
sfdisk disk.img <<EOF
label: gpt
label-id: $(uuidgen)
device: /dev/foobar0
unit: sectors
first-lba: $first_lba
last-lba: $last_lba
/dev/foobar0p1 : start=$efi_part_start, size=$efi_part_size, type=$esp_type, uuid=$efi_part_uuid, name="efi-part.vfat"
/dev/foobar0p2 : start=$root_part_start, size=$root_part_size, type=$linux_type, uuid=$root_part_uuid, name="rootfs.ext2"
EOF
dd if=efi-part.vfat of=disk.img bs=512 count=$efi_part_size seek=$efi_part_start conv=notrunc
dd if=rootfs.ext2 of=disk.img bs=512 count=$root_part_size seek=$root_part_start conv=notrunc

View File

@@ -1,14 +0,0 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
# Detect boot strategy, EFI or BIOS
if [ -f ${BINARIES_DIR}/efi-part/startup.nsh ]; then
cp -f ${BOARD_DIR}/grub-efi.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg
else
cp -f ${BOARD_DIR}/grub-bios.cfg ${TARGET_DIR}/boot/grub/grub.cfg
# Copy grub 1st stage to binaries, required for genimage
cp -f ${HOST_DIR}/lib/grub/i386-pc/boot.img ${BINARIES_DIR}
fi
exit $?

View File

@@ -9,7 +9,7 @@ Bare PC sample config
$ make pc_x86_64_bios_defconfig
Or for EFI:
For EFI-based boot strategy on a GPT-partitioned disk:
$ make pc_x86_64_efi_defconfig

View File

@@ -0,0 +1,4 @@
label rock64-buildroot
kernel /boot/Image
devicetree /boot/rk3328-rock64.dtb
append console=ttyS2,1500000n8 root=/dev/mmcblk0p1 ro rootwait

View File

@@ -0,0 +1,23 @@
image sdcard.img {
hdimage {
}
partition uboot-spl {
in-partition-table = "no"
image = "u-boot-tpl-spl.img"
offset = 32768 # 512 * 0x40 from start of sd card
}
partition uboot {
in-partition-table = "no"
image = "u-boot.itb"
offset = 262144 # 512 * 0x200 from start of sd card
}
partition rootfs {
partition-type = 0x83
bootable = "yes"
image = "rootfs.ext2"
size = 500M
}
}

View File

@@ -0,0 +1,32 @@
From 211bf049084e6e374dac253138fa813682910146 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20=C5=81yszczek?= <michal.lyszczek@bofc.pl>
Date: Tue, 5 Feb 2019 22:08:54 +0100
Subject: [PATCH] Makefile: rk3328 needs itb image to boot properly
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Michał Łyszczek <michal.lyszczek@bofc.pl>
---
Makefile | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Makefile b/Makefile
index 8086f3c93e..a6425b5b03 100644
--- a/Makefile
+++ b/Makefile
@@ -799,6 +799,11 @@ ifneq ($(BUILD_ROM),)
ALL-$(CONFIG_X86_RESET_VECTOR) += u-boot.rom
endif
+# rk3328 needs itb image to boot properly
+ifeq ($(CONFIG_ROCKCHIP_RK3328),y)
+ALL-y += u-boot.itb
+endif
+
# enable combined SPL/u-boot/dtb rules for tegra
ifeq ($(CONFIG_TEGRA)$(CONFIG_SPL),yy)
ALL-y += u-boot-tegra.bin u-boot-nodtb-tegra.bin
--
2.18.1

View File

@@ -0,0 +1,9 @@
#!/bin/sh
MKIMAGE=$HOST_DIR/bin/mkimage
BOARD_DIR="$(dirname $0)"
$MKIMAGE -n rk3328 -T rksd -d $BINARIES_DIR/u-boot-tpl.bin $BINARIES_DIR/u-boot-tpl.img
cat $BINARIES_DIR/u-boot-tpl.img $BINARIES_DIR/u-boot-spl.bin > $BINARIES_DIR/u-boot-tpl-spl.img
install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf

View File

@@ -0,0 +1,95 @@
Intro
=====
This default configuration will allow you to start experimenting with the
buildroot environment for the Rock64. With this default configuration you
can log in into board via uart and look around.
Board homepage: https://www.pine64.org/?page_id=7147
Build
=====
First, load rock64 config for buildroot
$ make rock64_defconfig
Optionally make changes to buildroot config (to install more programs)
$ make menuconfig
And then build everything
$ make
When completed, following files will be generated in output/images directory:
.
├── Image
├── bl31.bin
├── bl31.elf
├── rk3328-rock64.dtb
├── rootfs.ext2
├── rootfs.ext4 -> rootfs.ext2
├── rootfs.tar
├── sdcard.img
├── u-boot-spl.bin
├── u-boot-tpl-spl.img
├── u-boot-tpl.bin
├── u-boot-tpl.img
├── u-boot.bin
└── u-boot.itb
Creating bootable SD card
=========================
!!! THIS COMMAND MAY WIPE YOUR DISK!
!!! MAKE SURE YOU PASSED CORRECT DEVICE!
!!! OR IT THIS WILL WIPE YOUR DISK!
Simply invoke (as root)
# dd if=output/images/sdcard.img of=/dev/sdX && sync
Where X is your SD card device (not partition), of= argument may also be
/dev/mmcblk0 if you are using built-in sd card reader.
Runtime
=======
Login
-----
By default, buildroot has no password, just type 'root' as login user, and
you will be logged in.
Serial console
--------------
Serial console needs to be connected to pins (into 40pin rpi compatible part)
pin 6: gnd
pin 8: tx
pin 10: rx
Pin numbers are printed on board.
Uart configuration is not standard. Rock64 uses 1500000 (1,5M) baudrate
with standard 8n1.
Ethernet
--------
To enable ethernet you need to load modules for it:
# modprobe stmmac
# modprobe dwmac-rk
and since by default there is no dhcp installed, you need to configure ip
address, remember to change address to fit your network.
# ifconfig eth0 up
# ip addr add 10.1.1.180/24 dev eth0
# ping 10.1.1.1
PING 10.1.1.1 (10.1.1.1): 56 data bytes
64 bytes from 10.1.1.1: seq=0 ttl=64 time=0.695 ms

View File

@@ -1,6 +1,5 @@
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_TASKSTATS=y
@@ -10,7 +9,6 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_SMP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_BINFMT_MISC=y
CONFIG_COMPAT=y

View File

@@ -1,7 +1,7 @@
Run the emulation with:
qemu-system-aarch64 -M virt -cpu cortex-a57 -nographic -smp 1 -kernel output/images/Image -append "root=/dev/vda console=ttyAMA0" -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 -drive file=output/images/rootfs.ext4,if=none,format=raw,id=hd0 -device virtio-blk-device,drive=hd0
qemu-system-aarch64 -M virt -cpu cortex-a53 -nographic -smp 1 -kernel output/images/Image -append "root=/dev/vda console=ttyAMA0" -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 -drive file=output/images/rootfs.ext4,if=none,format=raw,id=hd0 -device virtio-blk-device,drive=hd0
The login prompt will appear in the terminal that started Qemu.
Tested with QEMU 2.9.0
Tested with QEMU 2.12.0

View File

@@ -1,11 +1,12 @@
# CONFIG_MMU is not set
CONFIG_ARCH_VERSATILE=y
CONFIG_ARM_SINGLE_ARCH_VERSATILE=y
CONFIG_SET_MEM_PARAM=y
CONFIG_DRAM_BASE=0x00000000
CONFIG_DRAM_SIZE=0x08000000
CONFIG_ARCH_VERSATILE_PB=y
CONFIG_MACH_VERSATILE_AB=y
# CONFIG_MACH_VERSATILE_DT is not set
CONFIG_MACH_VERSATILE_DT=y
CONFIG_BINFMT_FLAT=y
CONFIG_SYSVIPC=y
CONFIG_MODULES=y

View File

@@ -1,30 +1,113 @@
From b7c1666813424d329868335c8faf8886b0f85b6c Mon Sep 17 00:00:00 2001
From: Greg Ungerer <gerg@linux-m68k.org>
Date: Thu, 11 Aug 2016 21:33:11 +1000
Subject: [PATCH] arm: fix versatile platform to work in no-MMU mode
From 4ac4324dcdaf237aa34545b3795acb2e5c42d10e Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Fri, 1 Feb 2019 11:36:20 +0100
Subject: [PATCH] arm-versatile-nommu: Linux patch
If CONFIG_MMU is disabled then do not carry out the virtual memory address
translation for IO devices.
Originally made by Waldemar Brodkorb <wbx@openadk.org> from LKML.
With this fix in place we can run the ARM Versatile board (including its
qemu emulation) as a no-MMU Linux system.
Signed-Off-by: Waldemar Brodkorb <wbx@openadk.org>
[Gerome: reformated as a Git patch]
Signed-off-by: Gerome Burlats <gerome.burlats@smile.fr>
[Romain: fix Waldemar's authorship in Git patch]
Signed-off-by: Romain Naour <romain.naour@smile.fr>
---
arch/arm/Kconfig | 11 +++++++++++
arch/arm/Kconfig.debug | 3 ++-
arch/arm/include/asm/mach/map.h | 1 +
arch/arm/mach-versatile/Kconfig | 5 +++--
arch/arm/mach-versatile/Makefile.boot | 3 +++
arch/arm/mach-versatile/versatile_dt.c | 4 ++++
6 files changed, 24 insertions(+), 3 deletions(-)
create mode 100644 arch/arm/mach-versatile/Makefile.boot
Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
diff -Nur linux-4.4.17.orig/arch/arm/mach-versatile/include/mach/hardware.h linux-4.4.17/arch/arm/mach-versatile/include/mach/hardware.h
--- linux-4.4.17.orig/arch/arm/mach-versatile/include/mach/hardware.h 2016-08-10 11:49:43.000000000 +0200
+++ linux-4.4.17/arch/arm/mach-versatile/include/mach/hardware.h 2016-08-25 23:19:03.691716292 +0200
@@ -30,8 +30,12 @@
#define VERSATILE_PCI_VIRT_BASE (void __iomem *)0xe8000000ul
#define VERSATILE_PCI_CFG_VIRT_BASE (void __iomem *)0xe9000000ul
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e8cd55a5b04c..fc2dbff70394 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -353,6 +353,17 @@ config ARM_SINGLE_ARMV7M
select SPARSE_IRQ
select USE_OF
+config ARM_SINGLE_ARCH_VERSATILE
+ bool "ARM Ltd. Versatile family"
+ depends on !MMU
+ select AUTO_ZRELADDR
+ select CLKSRC_OF
+ select COMMON_CLK
+ select GENERIC_CLOCKEVENTS
+ select GPIOLIB
+ select SPARSE_IRQ
+ select USE_OF
+
config ARCH_EBSA110
bool "EBSA-110"
select ARCH_USES_GETTIMEOFFSET
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index f6fcb8a79889..92fc637d3db8 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -1843,7 +1843,8 @@ config DEBUG_UNCOMPRESS
config UNCOMPRESS_INCLUDE
string
default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
- PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
+ PLAT_SAMSUNG || ARM_SINGLE_ARMV7M || \
+ ARM_SINGLE_ARCH_VERSATILE
default "mach/uncompress.h"
config EARLY_PRINTK
diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
index 9b7c328fb207..b1fe9c8b5c3e 100644
--- a/arch/arm/include/asm/mach/map.h
+++ b/arch/arm/include/asm/mach/map.h
@@ -62,6 +62,7 @@ extern int ioremap_page(unsigned long virt, unsigned long phys,
#else
#define iotable_init(map,num) do { } while (0)
#define vm_reserve_area_early(a,s,c) do { } while (0)
+#define debug_ll_io_init() do { } while (0)
#endif
#endif
diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index f5c275434d6c..06ad999d5978 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -1,7 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
config ARCH_VERSATILE
- bool "ARM Ltd. Versatile family"
- depends on ARCH_MULTI_V5
+ bool "ARM Ltd. Versatile family" if ARCH_MULTI_V5
+ depends on ARCH_MULTI_V5 || ARM_SINGLE_ARCH_VERSATILE
+ default y if ARM_SINGLE_ARCH_VERSATILE
select ARM_AMBA
select ARM_TIMER_SP804
select ARM_VIC
diff --git a/arch/arm/mach-versatile/Makefile.boot b/arch/arm/mach-versatile/Makefile.boot
new file mode 100644
index 000000000000..eacfc3f5c33e
--- /dev/null
+++ b/arch/arm/mach-versatile/Makefile.boot
@@ -0,0 +1,3 @@
+# Empty file waiting for deletion once Makefile.boot isn't needed any more.
+# Patch waits for application at
+# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
diff --git a/arch/arm/mach-versatile/versatile_dt.c b/arch/arm/mach-versatile/versatile_dt.c
index 3c8d39c12909..8cfa05a37295 100644
--- a/arch/arm/mach-versatile/versatile_dt.c
+++ b/arch/arm/mach-versatile/versatile_dt.c
@@ -37,7 +37,11 @@
#include <asm/mach/map.h>
+#ifdef CONFIG_MMU
/* macro to get at MMIO space when running virtually */
+#ifdef CONFIG_MMU
#define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
+#else
+#define IO_ADDRESS(x) (x)
+#endif
#define __io_address(n) ((void __iomem __force *)IO_ADDRESS(n))
/*
--
2.14.5

View File

@@ -4,9 +4,9 @@ Run the emulation with:
Or for the noMMU emulation:
qemu-system-arm -M versatilepb -kernel output/images/zImage -append "console=ttyAMA0,115200" -serial stdio -net user -net nic,model=smc91c111
qemu-system-arm -M versatilepb -kernel output/images/zImage -dtb output/images/versatile-pb.dtb -append "console=ttyAMA0,115200" -serial stdio -net user -net nic,model=smc91c111
The login prompt will appear in the terminal that started Qemu. The
graphical window is the framebuffer.
Tested with QEMU 2.9.0
Tested with QEMU 2.12.0

View File

@@ -8,4 +8,4 @@ graphical window is the framebuffer.
If you want to emulate more cores change "-smp 1" to "-smp 2" for
dual-core or even "smp -4" for a quad-core configuration.
Tested with QEMU 2.9.0
Tested with QEMU 2.12.0

Some files were not shown because too many files have changed in this diff Show More