SAMA5D4 Xplained Ultra Board BSP
guowenxue
2019-08-23 9393cb81acc34d1bd27cc921d8d98e618fb74662
linux-bsp/patches/linux-at91-sama5d4.patch
@@ -1,6 +1,6 @@
diff -Nuar linux-at91/arch/arm/boot/dts/at91-sama5d4_xplained.dts linux-at91-sama5d4/arch/arm/boot/dts/at91-sama5d4_xplained.dts
--- linux-at91/arch/arm/boot/dts/at91-sama5d4_xplained.dts   2019-08-18 17:24:46.000000000 +0800
+++ linux-at91-sama5d4/arch/arm/boot/dts/at91-sama5d4_xplained.dts   2019-08-20 14:09:32.906035974 +0800
+++ linux-at91-sama5d4/arch/arm/boot/dts/at91-sama5d4_xplained.dts   2019-08-22 23:05:47.351524760 +0800
@@ -128,6 +128,12 @@
          spi1: spi@fc018000 {
             cs-gpios = <&pioB 21 0>;
@@ -14,10 +14,65 @@
          };
 
          adc0: adc@fc034000 {
@@ -201,35 +207,25 @@
          atmel,has-pmecc;
          status = "okay";
-         at91bootstrap@0 {
-            label = "at91bootstrap";
-            reg = <0x0 0x40000>;
-         };
-
-         bootloader@40000 {
-            label = "bootloader";
-            reg = <0x40000 0x80000>;
-         };
-
-         bootloaderenv@c0000 {
-            label = "bootloader env";
-            reg = <0xc0000 0xc0000>;
-         };
-
-         dtb@180000 {
-            label = "device tree";
-            reg = <0x180000 0x80000>;
-         };
-
-         kernel@200000 {
-            label = "kernel";
-            reg = <0x200000 0x600000>;
-         };
-
-         rootfs@800000 {
-            label = "rootfs";
-            reg = <0x800000 0x0f800000>;
-         };
+            bootloader@0 { /* 1MB: 0~40000(bootstrap) 40000~C0000(u-boot.bin) C0000~100000(u-boot.env) */
+                label = "bootloader";
+                reg = <0x0 0x100000>;
+            };
+
+            linux@100000 { /* 7MB */
+                label = "linux";
+                reg = <0x100000 0x700000>;
+            };
+
+            rootfs@800000 { /* 200MB */
+                label = "rootfs";
+                reg = <0x800000 0xc800000>;
+            };
+
+            apps@800000 { /* 48MB */
+                label = "apps";
+                reg = <0xD000000 0x3000000>;
+            };
       };
    };
diff -Nuar linux-at91/build.sh linux-at91-sama5d4/build.sh
--- linux-at91/build.sh   1970-01-01 08:00:00.000000000 +0800
+++ linux-at91-sama5d4/build.sh   2019-08-22 19:01:50.275243986 +0800
@@ -0,0 +1,81 @@
+++ linux-at91-sama5d4/build.sh   2019-08-22 23:15:52.059536360 +0800
@@ -0,0 +1,85 @@
+#!/bin/bash
+
+BOARD=sama5d4
@@ -25,6 +80,9 @@
+IMGS_PATH=../images
+IMG_KER=linuxrom-${BOARD}.bin
+IMG_DTB=linuxrom-${BOARD}.dtb
+IMG_ITB=linuxrom-${BOARD}.itb
+
+IMG_FILES=${IMG_ITB}
+
+#INITRAMFS=YES
+
@@ -44,7 +102,7 @@
+function do_clean()
+{
+    #clean_initramfs
+    rm -f ${IMG_KER} $IMG_DTB
+    rm -f ${IMG_FILES}
+    rm -f cscope* tags
+    make CROSS_COMPILE=${CROSSTOOL} distclean
+}
@@ -60,22 +118,23 @@
+    sed -i "s|^\<ARCH\>.*|ARCH\t\t\t?=  arm|g" Makefile 
+    sed -i "s|^CROSS_COMPILE.*|CROSS_COMPILE\t?=  ${CROSSTOOL}|g" Makefile 
+
+    make -j${JOBS} uImage LOADADDR=0x22000000
+    make -j${JOBS} dtbs
+    make -j${JOBS}
+
+    cp arch/arm/boot/uImage ${IMG_KER} && chmod a+x ${IMG_KER}
+    cp arch/arm/boot/dts/at91-sama5d4_xplained.dtb ${IMG_DTB} && chmod a+x ${IMG_DTB}
+    echo "mkimage -f linuxrom-${BOARD}.its ${IMG_ITB}"
+    mkimage -f linuxrom-${BOARD}.its ${IMG_ITB} > /dev/null
+    chmod a+x ${IMG_ITB}
+}
+
+function do_install()
+{
+    if [ -d $TFTP_PATH ] ;then 
+        echo "cp ${IMG_KER} ${IMG_DTB} $TFTP_PATH"
+        cp ${IMG_KER} ${IMG_DTB} $TFTP_PATH
+        echo "cp ${IMG_FILES} $TFTP_PATH"
+        cp ${IMG_FILES} $TFTP_PATH
+    fi
+
+    if [ -d ${IMGS_PATH} ] ; then
+        cp ${IMG_KER} ${IMG_DTB} $IMGS_PATH
+        echo "cp ${IMG_FILES} $IMGS_PATH"
+        cp ${IMG_FILES} $IMGS_PATH
+    fi
+}
+
@@ -101,7 +160,7 @@
+
diff -Nuar linux-at91/.cfg-sama5d4 linux-at91-sama5d4/.cfg-sama5d4
--- linux-at91/.cfg-sama5d4   1970-01-01 08:00:00.000000000 +0800
+++ linux-at91-sama5d4/.cfg-sama5d4   2019-08-22 19:01:58.915244152 +0800
+++ linux-at91-sama5d4/.cfg-sama5d4   2019-08-23 00:02:44.587590311 +0800
@@ -0,0 +1,4073 @@
+#
+# Automatically generated file; DO NOT EDIT.
@@ -4178,7 +4237,7 @@
+# CONFIG_VIRTUALIZATION is not set
diff -Nuar linux-at91/drivers/net/wireless/ralink/rt2x00/rt2800usb.c linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
--- linux-at91/drivers/net/wireless/ralink/rt2x00/rt2800usb.c   2019-08-18 17:24:53.000000000 +0800
+++ linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2800usb.c   2019-08-20 14:09:32.910035974 +0800
+++ linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2800usb.c   2019-08-22 23:05:23.819524309 +0800
@@ -123,7 +123,8 @@
    if (!test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))
       return false;
@@ -4191,7 +4250,7 @@
             "TX status timeout for entry %d in queue %d\n",
diff -Nuar linux-at91/drivers/net/wireless/ralink/rt2x00/rt2x00queue.h linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2x00queue.h
--- linux-at91/drivers/net/wireless/ralink/rt2x00/rt2x00queue.h   2019-08-18 17:24:53.000000000 +0800
+++ linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2x00queue.h   2019-08-20 14:09:32.910035974 +0800
+++ linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2x00queue.h   2019-08-22 23:05:23.819524309 +0800
@@ -632,7 +632,8 @@
 {
    if (!test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags))
@@ -4204,7 +4263,7 @@
 /**
diff -Nuar linux-at91/drivers/net/wireless/ralink/rt2x00/rt2x00usb.h linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2x00usb.h
--- linux-at91/drivers/net/wireless/ralink/rt2x00/rt2x00usb.h   2019-08-18 17:24:53.000000000 +0800
+++ linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2x00usb.h   2019-08-20 14:09:32.910035974 +0800
+++ linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2x00usb.h   2019-08-22 23:05:23.823524309 +0800
@@ -38,7 +38,7 @@
  * a higher value is required. In that case we use the REGISTER_TIMEOUT_FIRMWARE
  * and EEPROM_TIMEOUT.
@@ -4216,7 +4275,7 @@
 
diff -Nuar linux-at91/drivers/spi/spidev.c linux-at91-sama5d4/drivers/spi/spidev.c
--- linux-at91/drivers/spi/spidev.c   2019-08-18 17:24:57.000000000 +0800
+++ linux-at91-sama5d4/drivers/spi/spidev.c   2019-08-20 14:09:32.910035974 +0800
+++ linux-at91-sama5d4/drivers/spi/spidev.c   2019-08-22 23:05:23.823524309 +0800
@@ -696,6 +696,7 @@
 static const struct of_device_id spidev_dt_ids[] = {
    { .compatible = "rohm,dh2228fv" },
@@ -4225,9 +4284,50 @@
    {},
 };
 MODULE_DEVICE_TABLE(of, spidev_dt_ids);
diff -Nuar linux-at91/linuxrom-sama5d4.its linux-at91-sama5d4/linuxrom-sama5d4.its
--- linux-at91/linuxrom-sama5d4.its   1970-01-01 08:00:00.000000000 +0800
+++ linux-at91-sama5d4/linuxrom-sama5d4.its   2019-08-22 22:54:12.063511423 +0800
@@ -0,0 +1,37 @@
+/* U-Boot uImage source file for "sama5d4_xplained" */
+
+/dts-v1/;
+
+/ {
+    description = "U-Boot uImage source file for SAMA5D4 Xplained";
+    #address-cells = <1>;
+
+    images {
+        kernel@sama5d4 {
+            description = "Linux kernel for SAMA5D4 Xplained";
+            data = /incbin/("arch/arm/boot/zImage");
+            type = "kernel";
+            arch = "arm";
+            os = "linux";
+            compression = "none";
+            load = <0x20008000>;
+            entry = <0x20008000>;
+        };
+        fdt@sama5d4 {
+            description = "Flattened Device Tree blob for SAMA5D4 Xplained";
+            data = /incbin/("arch/arm/boot/dts/at91-sama5d4_xplained.dtb");
+            type = "flat_dt";
+            arch = "arm";
+            compression = "none";
+        };
+    };
+
+    configurations {
+        default = "conf@sama5d4";
+        conf@sama5d4 {
+            description = "Boot Linux kernel with FDT blob";
+            kernel = "kernel@sama5d4";
+            fdt = "fdt@sama5d4";
+        };
+    };
+};
diff -Nuar linux-at91/Makefile linux-at91-sama5d4/Makefile
--- linux-at91/Makefile   2019-08-18 17:24:45.000000000 +0800
+++ linux-at91-sama5d4/Makefile   2019-08-20 14:09:33.046035975 +0800
+++ linux-at91-sama5d4/Makefile   2019-08-22 23:16:11.343536730 +0800
@@ -1,7 +1,7 @@
 VERSION = 4
 PATCHLEVEL = 9