diff --git a/classes/sdcard_image-sunxi.bbclass b/classes/sdcard_image-sunxi.bbclass index 9e04178..a168f2c 100644 --- a/classes/sdcard_image-sunxi.bbclass +++ b/classes/sdcard_image-sunxi.bbclass @@ -67,7 +67,23 @@ IMAGE_CMD_sunxi-sdimg () { # Create a vfat image with boot files BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDIMG} unit b print | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 512 /2 }') mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS + mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::uImage + + # Copy device tree file + if test -n "${KERNEL_DEVICETREE}"; then + for DTS_FILE in ${KERNEL_DEVICETREE}; do + DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'` + if [ -e "${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb" ]; then + kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`" + kernel_bin_for_dtb="`readlink ${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb | sed "s,$DTS_BASE_NAME,${MACHINE},g;s,\.dtb$,.bin,g"`" + if [ $kernel_bin = $kernel_bin_for_dtb ]; then + mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb ::/${DTS_BASE_NAME}.dtb + fi + fi + done + fi + if [ -e "${DEPLOY_DIR_IMAGE}/fex.bin" ] then mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/fex.bin ::script.bin diff --git a/conf/machine/bananapi.conf b/conf/machine/bananapi.conf index f2e6324..9bea7e3 100644 --- a/conf/machine/bananapi.conf +++ b/conf/machine/bananapi.conf @@ -13,6 +13,8 @@ UBOOT_MACHINE = "Bananapi_config" UBOOT_ENTRYPOINT = "0x40008000" UBOOT_LOADADDRESS = "0x40008000" +KERNEL_DEVICETREE = "sun7i-a20-bananapi.dtb" + SERIAL_CONSOLE = "115200 ttyS0" MACHINE_FEATURES = "screen apm usbgadget usbhost vfat" diff --git a/conf/machine/cubieboard.conf b/conf/machine/cubieboard.conf index 236a702..b1a9477 100644 --- a/conf/machine/cubieboard.conf +++ b/conf/machine/cubieboard.conf @@ -13,6 +13,8 @@ UBOOT_MACHINE = "Cubieboard_config" UBOOT_ENTRYPOINT = "0x40008000" UBOOT_LOADADDRESS = "0x40008000" +KERNEL_DEVICETREE = "sun4i-a10-cubieboard.dtb" + SERIAL_CONSOLE = "115200 ttyS0" MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa" diff --git a/conf/machine/cubieboard2.conf b/conf/machine/cubieboard2.conf index 2341216..5b18da7 100644 --- a/conf/machine/cubieboard2.conf +++ b/conf/machine/cubieboard2.conf @@ -13,6 +13,8 @@ UBOOT_MACHINE = "Cubieboard2_config" UBOOT_ENTRYPOINT = "0x40008000" UBOOT_LOADADDRESS = "0x40008000" +KERNEL_DEVICETREE = "sun7i-a20-cubieboard2.dtb" + SERIAL_CONSOLE = "115200 ttyS0" MACHINE_FEATURES = "screen apm usbgadget usbhost vfat" diff --git a/conf/machine/cubietruck.conf b/conf/machine/cubietruck.conf index 8720801..f7049a3 100644 --- a/conf/machine/cubietruck.conf +++ b/conf/machine/cubietruck.conf @@ -13,6 +13,8 @@ UBOOT_MACHINE = "Cubietruck_config" UBOOT_ENTRYPOINT = "0x40008000" UBOOT_LOADADDRESS = "0x40008000" +KERNEL_DEVICETREE = "sun7i-a20-cubietruck.dtb" + SERIAL_CONSOLE = "115200 ttyS0" MACHINE_FEATURES = "screen apm usbgadget usbhost vfat" diff --git a/conf/machine/mele.conf b/conf/machine/mele.conf index 30f295b..41141e8 100644 --- a/conf/machine/mele.conf +++ b/conf/machine/mele.conf @@ -13,6 +13,8 @@ UBOOT_MACHINE = "Mele_A1000_config" UBOOT_ENTRYPOINT = "0x40008000" UBOOT_LOADADDRESS = "0x40008000" +KERNEL_DEVICETREE = "sun4i-a10-a1000.dtb" + SERIAL_CONSOLE = "115200 ttyS0" MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa" diff --git a/conf/machine/olinuxino-a10lime.conf b/conf/machine/olinuxino-a10lime.conf index ab71be8..9622873 100644 --- a/conf/machine/olinuxino-a10lime.conf +++ b/conf/machine/olinuxino-a10lime.conf @@ -11,6 +11,8 @@ UBOOT_MACHINE = "A10-OLinuXino-Lime_config" UBOOT_ENTRYPOINT = "0x40008000" UBOOT_LOADADDRESS = "0x40008000" +KERNEL_DEVICETREE = "sun4i-a10-olinuxino-lime.dtb" + SERIAL_CONSOLE = "115200 ttyS0" MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa" diff --git a/conf/machine/olinuxino-a10s.conf b/conf/machine/olinuxino-a10s.conf index 431e9ef..9452c51 100644 --- a/conf/machine/olinuxino-a10s.conf +++ b/conf/machine/olinuxino-a10s.conf @@ -14,6 +14,8 @@ UBOOT_MACHINE = "A10s-OLinuXino-Micro_config" UBOOT_ENTRYPOINT = "0x40008000" UBOOT_LOADADDRESS = "0x40008000" +KERNEL_DEVICETREE = "sun5i-a10s-olinuxino-micro.dtb" + SERIAL_CONSOLE = "115200 ttyS0" MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa" diff --git a/conf/machine/olinuxino-a13.conf b/conf/machine/olinuxino-a13.conf index aaf4367..0709afb 100644 --- a/conf/machine/olinuxino-a13.conf +++ b/conf/machine/olinuxino-a13.conf @@ -14,6 +14,8 @@ UBOOT_MACHINE = "A13-OLinuXino_config" UBOOT_ENTRYPOINT = "0x40008000" UBOOT_LOADADDRESS = "0x40008000" +KERNEL_DEVICETREE = "sun5i-a13-olinuxino.dtb" + SERIAL_CONSOLE = "115200 ttyS0" MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa" diff --git a/conf/machine/olinuxino-a20.conf b/conf/machine/olinuxino-a20.conf index 8c174b2..353b0f6 100644 --- a/conf/machine/olinuxino-a20.conf +++ b/conf/machine/olinuxino-a20.conf @@ -11,6 +11,8 @@ UBOOT_MACHINE = "A20-OLinuXino-Micro_config" UBOOT_ENTRYPOINT = "0x40008000" UBOOT_LOADADDRESS = "0x40008000" +KERNEL_DEVICETREE = "sun7i-a20-olinuxino-micro.dtb" + SERIAL_CONSOLE = "115200 ttyS0" MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa" diff --git a/conf/machine/olinuxino-a20lime.conf b/conf/machine/olinuxino-a20lime.conf index 4587ca1..00a2988 100644 --- a/conf/machine/olinuxino-a20lime.conf +++ b/conf/machine/olinuxino-a20lime.conf @@ -11,6 +11,8 @@ UBOOT_MACHINE = "A20-OLinuXino-Lime_config" UBOOT_ENTRYPOINT = "0x40008000" UBOOT_LOADADDRESS = "0x40008000" +KERNEL_DEVICETREE = "sun7i-a20-olinuxino-lime.dtb" + SERIAL_CONSOLE = "115200 ttyS0" MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa" diff --git a/conf/machine/olinuxino-a20lime2.conf b/conf/machine/olinuxino-a20lime2.conf index d7f36ba..7c729c3 100644 --- a/conf/machine/olinuxino-a20lime2.conf +++ b/conf/machine/olinuxino-a20lime2.conf @@ -11,6 +11,8 @@ UBOOT_MACHINE = "A20-OLinuXino_Lime2_config" UBOOT_ENTRYPOINT = "0x40008000" UBOOT_LOADADDRESS = "0x40008000" +KERNEL_DEVICETREE = "sun7i-a20-olinuxino-lime2.dtb" + SERIAL_CONSOLE = "115200 ttyS0" MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa" diff --git a/recipes-kernel/linux/linux-mainline/defconfig b/recipes-kernel/linux/linux-mainline/defconfig new file mode 100644 index 0000000..7ebc346 --- /dev/null +++ b/recipes-kernel/linux/linux-mainline/defconfig @@ -0,0 +1,125 @@ +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_PERF_EVENTS=y +CONFIG_MODULES=y +CONFIG_ARCH_SUNXI=y +CONFIG_SMP=y +CONFIG_NR_CPUS=8 +CONFIG_AEABI=y +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_CPU_FREQ=y +CONFIG_CPUFREQ_DT=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_PM=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +# CONFIG_WIRELESS is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_EEPROM_SUNXI_SID=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_AHCI_SUNXI=y +CONFIG_NETDEVICES=y +CONFIG_SUN4I_EMAC=y +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_CADENCE is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CIRRUS is not set +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SMSC is not set +CONFIG_STMMAC_ETH=y +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +# CONFIG_WLAN is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_AXP20X_PEK=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_SUN4I=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=8 +CONFIG_SERIAL_8250_RUNTIME_UARTS=8 +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_OF_PLATFORM=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MV64XXX=y +CONFIG_SPI=y +CONFIG_SPI_SUN4I=y +CONFIG_SPI_SUN6I=y +CONFIG_GPIO_SYSFS=y +CONFIG_POWER_SUPPLY=y +CONFIG_POWER_RESET=y +CONFIG_THERMAL=y +CONFIG_CPU_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_SUNXI_WATCHDOG=y +CONFIG_MFD_AXP20X=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_AXP20X=y +CONFIG_REGULATOR_GPIO=y +CONFIG_FB=y +CONFIG_FB_SIMPLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_MMC=y +CONFIG_MMC_SUNXI=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_RTC_CLASS=y +# CONFIG_RTC_INTF_SYSFS is not set +# CONFIG_RTC_INTF_PROC is not set +CONFIG_RTC_DRV_SUN6I=y +CONFIG_RTC_DRV_SUNXI=y +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_PHY_SUN4I_USB=y +CONFIG_PHY_SUN9I_USB=y +CONFIG_EXT4_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_FS=y diff --git a/recipes-kernel/linux/linux-mainline_4.0.bb b/recipes-kernel/linux/linux-mainline_4.0.bb new file mode 100644 index 0000000..8dbedf1 --- /dev/null +++ b/recipes-kernel/linux/linux-mainline_4.0.bb @@ -0,0 +1,22 @@ +SECTION = "kernel" +DESCRIPTION = "Mainline Linux kernel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" +COMPATIBLE_MACHINE = "(bananapi|cubieboard|cubieboard2|cubietruck|mele|olinuxino-a10lime|olinuxino-a10s|olinuxino-a13|olinuxino-a20|olinuxino-a20lime|olinuxino-a20lime2)" + +inherit kernel + +require recipes-kernel/linux/linux-dtb.inc +require linux.inc + +# Pull in the devicetree files into the rootfs +RDEPENDS_kernel-base += "kernel-devicetree" + +KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}" + +PV = "4.0.5" +SRCREV_pn-${PN} = "be4cb235441a691ee63ba5e00843a9c210be5b8a" +SRC_URI += "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git;protocol=git;branch=linux-4.0.y \ + file://defconfig \ + " +S = "${WORKDIR}/git"