Message ID | 1446836886-27256-1-git-send-email-viktorin@rehivetech.com |
---|---|
State | Changes Requested |
Headers | show |
Hello, Sorry for the late review. It generally looks good, but I still have a number of comments which should be addressed in order for the patch to be applied. On Fri, 6 Nov 2015 20:08:06 +0100, Jan Viktorin wrote: > This patch provides support for the board Odroid XU4: > > http://odroid.com/dokuwiki/doku.php?id=en:odroid-xu4 > > The support utilizes the Linux Kernel 4.2 experimental from: > > https://github.com/tobetter/linux odroidxu4-v4.2 There is a v4.6 branch now, perhaps using it would be good (but it's definitely not mandatory). > > (currently: 5eb40d45b291ee129cbfac2073f1ca7aa32ff4c5) > > and a customized linux defconfig which disables various (mostly) > useless drivers to minimalize the Buildroot initial system. It > compiles the r8152 driver into the kernel to have a working > Ethernet out-of-the-box. Please use odroidxu4_defconfig from the upstream tree. It is not necessary to have a strictly minimal kernel configuration, we very much prefer using an upstream defconfig. > diff --git a/board/hardkernel/linux-odroidxu4-v4.2.config b/board/hardkernel/linux-odroidxu4-v4.2.config Please use a subdirectory for the board: board/<vendor>/<board>/ So in your case: board/hardkernel/odroid-xu4/ > diff --git a/board/hardkernel/readme.txt b/board/hardkernel/readme.txt > new file mode 100644 > index 0000000..d7a77db > --- /dev/null > +++ b/board/hardkernel/readme.txt > @@ -0,0 +1,49 @@ > +Odroid XU4 > +========== > + > +http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825 > +http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825 > + > +The Buildroot odroid_xu4_defconfig configuration builds: > + > + u-boot.bin -> u-boot.bin.hardkernel > + zImage > + exynos5422-odroidxu4.dtb > + rootfs.ext3 > + > +and prepares: > + > + bl1.bin.hardkernel > + bl2.bin.hardkernel > + tzsw.bin.hardkernel > + sd_fusing.sh > + boot.ini > + > +As the board requires signed 1st bootloader, it is necessary to use > +the provided BLOBs. > + > + > +Installation: > + > + - suppose ${SD} points to eg. /dev/sdc (your SD card) > + > + 1) make odroid_xu4_defconfig > + 2) make > + 3) cd output/images > + 4) create 2 partitions (fdisk, cfdisk, ...): > + FAT (~128 MB), ext3 (rest). > + > + 5) sudo ./sd_fusing ${SD} > + Installs the bootloaders, trust zone and the built U-Boot. > + > + 6) sudo dd if=rootfs.ext3 of=${SD}2 > + Write to eg. /dev/sdc2. > + > + 7) sudo mount ${SD}1 /mnt > + Mount the FAT partition (eg. /dev/sdc1). > + > + 8) sudo cp -v zImage boot.ini exynos5422-odroidxu4.dtb /mnt > + 9) sudo umount ${SD}1 Please use the genimage mechanism to directly generate a bootable SD card. Look at the other boards supported in Buildroot, many of them are using genimage. > diff --git a/configs/odroid_xu4_defconfig b/configs/odroid_xu4_defconfig > new file mode 100644 > index 0000000..3790db7 > --- /dev/null > +++ b/configs/odroid_xu4_defconfig > @@ -0,0 +1,27 @@ > +BR2_arm=y > +BR2_cortex_a15=y > +BR2_ARM_FPU_NEON=y Using NEON as the FPU is really not recommended. Please use the VFP unit for floating point by default. > +BR2_KERNEL_HEADERS_4_2=y This needs to be changed to: BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y > +BR2_TARGET_GENERIC_HOSTNAME="odroid-xu4" > +BR2_TARGET_GENERIC_ISSUE="Welcome to Odroid XU4!" > +BR2_TARGET_GENERIC_GETTY_PORT="ttySAC2" > +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y Aren't the default setting (use the kernel console) working for yuo? > +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/hardkernel/odroid-post.sh" We usually call it post-image.sh. > +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_TARGET_UBOOT_VERSION)" > +BR2_LINUX_KERNEL=y > +BR2_LINUX_KERNEL_CUSTOM_GIT=y > +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/tobetter/linux" > +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="odroidxu4-v4.2" > +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y > +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/hardkernel/linux-odroidxu4-v4.2.config" > +BR2_LINUX_KERNEL_ZIMAGE=y > +BR2_LINUX_KERNEL_DTS_SUPPORT=y > +BR2_LINUX_KERNEL_INTREE_DTS_NAME="exynos5422-odroidxu4" > +BR2_TARGET_ROOTFS_EXT2=y > +BR2_TARGET_ROOTFS_EXT2_3=y > +# BR2_TARGET_ROOTFS_TAR is not set > +BR2_TARGET_UBOOT=y > +BR2_TARGET_UBOOT_BOARDNAME="odroid" > +BR2_TARGET_UBOOT_CUSTOM_GIT=y > +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/hardkernel/u-boot.git" > +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="odroidxu3-v2012.07" Thanks! Thomas
On Tue, 31 May 2016 22:30:59 +0200 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > Hello, > > Sorry for the late review. Half a year, cool :). Never mind, I am pretty sure there are many other things to do around Buildroot... > It generally looks good, but I still have a > number of comments which should be addressed in order for the patch to > be applied. > > On Fri, 6 Nov 2015 20:08:06 +0100, Jan Viktorin wrote: > > This patch provides support for the board Odroid XU4: > > > > http://odroid.com/dokuwiki/doku.php?id=en:odroid-xu4 > > > > The support utilizes the Linux Kernel 4.2 experimental from: > > > > https://github.com/tobetter/linux odroidxu4-v4.2 > > There is a v4.6 branch now, perhaps using it would be good (but it's > definitely not mandatory). Do you mean https://github.com/ioft/linux.git? It doesn't boot for me. I spent about 2 days just on this (about 2 weeks ago). No idea why... The v4.2 works, just the CPU cores are shuffled (cpu0 is LITTLE, cpu1-4 are BIG, and cpu5-7 are again LITTLE). If there is somebody with a successful setup of v4.6, I'd be happy to see what I did wrong. > > > > > (currently: 5eb40d45b291ee129cbfac2073f1ca7aa32ff4c5) > > > > and a customized linux defconfig which disables various (mostly) > > useless drivers to minimalize the Buildroot initial system. It > > compiles the r8152 driver into the kernel to have a working > > Ethernet out-of-the-box. > > Please use odroidxu4_defconfig from the upstream tree. It is not > necessary to have a strictly minimal kernel configuration, we very much > prefer using an upstream defconfig. Ok, I just didn't like the default configuration due to its size... > > > diff --git a/board/hardkernel/linux-odroidxu4-v4.2.config b/board/hardkernel/linux-odroidxu4-v4.2.config > > Please use a subdirectory for the board: > > board/<vendor>/<board>/ > > So in your case: > > board/hardkernel/odroid-xu4/ Will fix. > > > > diff --git a/board/hardkernel/readme.txt b/board/hardkernel/readme.txt > > new file mode 100644 > > index 0000000..d7a77db > > --- /dev/null > > +++ b/board/hardkernel/readme.txt > > @@ -0,0 +1,49 @@ > > +Odroid XU4 > > +========== > > + > > +http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825 This duplication is probably a mistake... > > +http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825 > > + > > +The Buildroot odroid_xu4_defconfig configuration builds: > > + > > + u-boot.bin -> u-boot.bin.hardkernel > > + zImage > > + exynos5422-odroidxu4.dtb > > + rootfs.ext3 > > + > > +and prepares: > > + > > + bl1.bin.hardkernel > > + bl2.bin.hardkernel > > + tzsw.bin.hardkernel > > + sd_fusing.sh > > + boot.ini > > + > > +As the board requires signed 1st bootloader, it is necessary to use > > +the provided BLOBs. > > + > > + > > +Installation: > > + > > + - suppose ${SD} points to eg. /dev/sdc (your SD card) > > + > > + 1) make odroid_xu4_defconfig > > + 2) make > > + 3) cd output/images > > + 4) create 2 partitions (fdisk, cfdisk, ...): > > + FAT (~128 MB), ext3 (rest). > > + > > + 5) sudo ./sd_fusing ${SD} > > + Installs the bootloaders, trust zone and the built U-Boot. > > + > > + 6) sudo dd if=rootfs.ext3 of=${SD}2 > > + Write to eg. /dev/sdc2. > > + > > + 7) sudo mount ${SD}1 /mnt > > + Mount the FAT partition (eg. /dev/sdc1). > > + > > + 8) sudo cp -v zImage boot.ini exynos5422-odroidxu4.dtb /mnt > > + 9) sudo umount ${SD}1 > > Please use the genimage mechanism to directly generate a bootable SD > card. Look at the other boards supported in Buildroot, many of them are > using genimage. Ok, sorry, I have no clue how genimage works and what does it do... I'll try to rework this. > > > diff --git a/configs/odroid_xu4_defconfig b/configs/odroid_xu4_defconfig > > new file mode 100644 > > index 0000000..3790db7 > > --- /dev/null > > +++ b/configs/odroid_xu4_defconfig > > @@ -0,0 +1,27 @@ > > +BR2_arm=y > > +BR2_cortex_a15=y > > +BR2_ARM_FPU_NEON=y > > Using NEON as the FPU is really not recommended. Please use the VFP > unit for floating point by default. OK. > > > +BR2_KERNEL_HEADERS_4_2=y > > This needs to be changed to: > > BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y OK. > > > +BR2_TARGET_GENERIC_HOSTNAME="odroid-xu4" > > +BR2_TARGET_GENERIC_ISSUE="Welcome to Odroid XU4!" > > +BR2_TARGET_GENERIC_GETTY_PORT="ttySAC2" > > +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y > > Aren't the default setting (use the kernel console) working for yuo? I am not sure, I will try it. > > > +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/hardkernel/odroid-post.sh" > > We usually call it post-image.sh. OK. > > > +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_TARGET_UBOOT_VERSION)" > > +BR2_LINUX_KERNEL=y > > +BR2_LINUX_KERNEL_CUSTOM_GIT=y > > +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/tobetter/linux" > > +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="odroidxu4-v4.2" > > +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y > > +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/hardkernel/linux-odroidxu4-v4.2.config" > > +BR2_LINUX_KERNEL_ZIMAGE=y > > +BR2_LINUX_KERNEL_DTS_SUPPORT=y > > +BR2_LINUX_KERNEL_INTREE_DTS_NAME="exynos5422-odroidxu4" > > +BR2_TARGET_ROOTFS_EXT2=y > > +BR2_TARGET_ROOTFS_EXT2_3=y > > +# BR2_TARGET_ROOTFS_TAR is not set > > +BR2_TARGET_UBOOT=y > > +BR2_TARGET_UBOOT_BOARDNAME="odroid" > > +BR2_TARGET_UBOOT_CUSTOM_GIT=y > > +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/hardkernel/u-boot.git" > > +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="odroidxu3-v2012.07" > > Thanks! > > Thomas Regards Jan
Hello, On Wed, 1 Jun 2016 13:03:17 +0200, Jan Viktorin wrote: > > Sorry for the late review. > > Half a year, cool :). Never mind, I am pretty sure there are many other > things to do around Buildroot... Well, you can see by yourself the list of pending patches at http://patchwork.ozlabs.org/project/buildroot/list/. The best thing you can do to get your patches integrated is to help review and test the patches from others. > Do you mean https://github.com/ioft/linux.git? It doesn't boot for me. I spent > about 2 days just on this (about 2 weeks ago). No idea why... No, I'm talking about https://github.com/tobetter/linux/tree/odroidxu4-v4.6. It is the same Github repository as the one you're using, just a different branch. > If there is somebody with a successful setup of v4.6, I'd be happy to see what > I did wrong. If 4.6 doesn't work for you, I'm fine with a defconfig using 4.2 for now. Using 4.6 is definitely not a requirement. > > Please use odroidxu4_defconfig from the upstream tree. It is not > > necessary to have a strictly minimal kernel configuration, we very much > > prefer using an upstream defconfig. > > Ok, I just didn't like the default configuration due to its size... Right, but the advantage of using upstream's defconfig is that it will be updated with new options as needed, and also removes stuff from Buildroot. > > > diff --git a/board/hardkernel/readme.txt b/board/hardkernel/readme.txt > > > new file mode 100644 > > > index 0000000..d7a77db > > > --- /dev/null > > > +++ b/board/hardkernel/readme.txt > > > @@ -0,0 +1,49 @@ > > > +Odroid XU4 > > > +========== > > > + > > > +http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825 > > This duplication is probably a mistake... Yeah, but no big deal. That's the type of minor issue I can fix when applying. > > Please use the genimage mechanism to directly generate a bootable SD > > card. Look at the other boards supported in Buildroot, many of them are > > using genimage. > > Ok, sorry, I have no clue how genimage works and what does it do... > I'll try to rework this. It allows to generate a complete hard disk or SD card image, with multiple partitions in it. Check for example board/raspberrypi/genimage-raspberrypi0.cfg and the post-image script board/raspberrypi/post-image.sh. Thanks a lot! Thomas
On Wed, 1 Jun 2016 13:52:05 +0200 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > Hello, > > On Wed, 1 Jun 2016 13:03:17 +0200, Jan Viktorin wrote: > > > > Sorry for the late review. > > > > Half a year, cool :). Never mind, I am pretty sure there are many other > > things to do around Buildroot... > > Well, you can see by yourself the list of pending patches at > http://patchwork.ozlabs.org/project/buildroot/list/. The best thing you > can do to get your patches integrated is to help review and test the > patches from others. I know... that's exactly what I've tried to express. > > > Do you mean https://github.com/ioft/linux.git? It doesn't boot for me. I spent > > about 2 days just on this (about 2 weeks ago). No idea why... > > No, I'm talking about > https://github.com/tobetter/linux/tree/odroidxu4-v4.6. It is the same > Github repository as the one you're using, just a different branch. I've missed this one. Thank you! I'll try it as soon as I find some time for it. > > > If there is somebody with a successful setup of v4.6, I'd be happy to see what > > I did wrong. > > If 4.6 doesn't work for you, I'm fine with a defconfig using 4.2 for > now. Using 4.6 is definitely not a requirement. > > > > Please use odroidxu4_defconfig from the upstream tree. It is not > > > necessary to have a strictly minimal kernel configuration, we very much > > > prefer using an upstream defconfig. > > > > Ok, I just didn't like the default configuration due to its size... > > Right, but the advantage of using upstream's defconfig is that it will > be updated with new options as needed, and also removes stuff from > Buildroot. Yes. > > > > > diff --git a/board/hardkernel/readme.txt b/board/hardkernel/readme.txt > > > > new file mode 100644 > > > > index 0000000..d7a77db > > > > --- /dev/null > > > > +++ b/board/hardkernel/readme.txt > > > > @@ -0,0 +1,49 @@ > > > > +Odroid XU4 > > > > +========== > > > > + > > > > +http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825 > > > > This duplication is probably a mistake... > > Yeah, but no big deal. That's the type of minor issue I can fix when > applying. > > > > Please use the genimage mechanism to directly generate a bootable SD > > > card. Look at the other boards supported in Buildroot, many of them are > > > using genimage. > > > > Ok, sorry, I have no clue how genimage works and what does it do... > > I'll try to rework this. > > It allows to generate a complete hard disk or SD card image, with > multiple partitions in it. Check for example > board/raspberrypi/genimage-raspberrypi0.cfg and the post-image > script board/raspberrypi/post-image.sh. Ok, thanks for the brief description. Again, when I find some time for, I'll try to fix the patch. > > Thanks a lot! Thank you for your comments! Jan > > Thomas
diff --git a/board/hardkernel/linux-odroidxu4-v4.2.config b/board/hardkernel/linux-odroidxu4-v4.2.config new file mode 100644 index 0000000..9cb13c5 --- /dev/null +++ b/board/hardkernel/linux-odroidxu4-v4.2.config @@ -0,0 +1,402 @@ +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_FHANDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_DEBUG=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_MEMCG=y +CONFIG_MEMCG_KMEM=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_CGROUP=y +CONFIG_NAMESPACES=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_KALLSYMS_ALL=y +CONFIG_EMBEDDED=y +CONFIG_PERF_EVENTS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_ARCH_EXYNOS=y +CONFIG_ARCH_EXYNOS3=y +CONFIG_EXYNOS5420_MCPM=y +CONFIG_SMP=y +CONFIG_BIG_LITTLE=y +CONFIG_NR_CPUS=8 +CONFIG_ARM_PSCI=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_HIGHMEM=y +CONFIG_CMA=y +CONFIG_SECCOMP=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc mem=256M" +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPUFREQ_DT=y +CONFIG_ARM_BIG_LITTLE_CPUFREQ=y +CONFIG_ARM_DT_BL_CPUFREQ=y +CONFIG_ARM_EXYNOS_CPU_FREQ_BOOST_SW=y +# CONFIG_ARM_EXYNOS5440_CPUFREQ is not set +CONFIG_CPU_IDLE=y +CONFIG_ARM_EXYNOS_CPUIDLE=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_BINFMT_MISC=m +CONFIG_PM_AUTOSLEEP=y +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_DEBUG=y +CONFIG_PM_ADVANCED_DEBUG=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +CONFIG_NETFILTER=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_BT=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m +# CONFIG_BT_DEBUGFS is not set +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_CFG80211=m +CONFIG_MAC80211=m +CONFIG_MAC80211_LEDS=y +CONFIG_RFKILL_REGULATOR=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=128 +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_CRYPTOLOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_EEPROM_93CX6=m +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_SG=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=m +CONFIG_NETDEVICES=y +CONFIG_MACVLAN=m +CONFIG_TUN=m +CONFIG_VETH=m +# CONFIG_ETHERNET is not set +CONFIG_USB_RTL8152=y +# CONFIG_WLAN is not set +# CONFIG_INPUT_LEDS is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO is not set +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_SAMSUNG=y +CONFIG_SERIAL_SAMSUNG_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_HW_RANDOM=y +CONFIG_RAW_DRIVER=m +CONFIG_TCG_TIS_I2C_INFINEON=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m +CONFIG_I2C_ARB_GPIO_CHALLENGE=m +CONFIG_I2C_GPIO=y +CONFIG_SPI=y +CONFIG_SPI_S3C64XX=m +CONFIG_DEBUG_GPIO=y +CONFIG_GPIO_SYSFS=y +CONFIG_POWER_SUPPLY=y +CONFIG_BATTERY_SBS=y +CONFIG_BATTERY_MAX17040=y +CONFIG_BATTERY_MAX17042=y +CONFIG_SENSORS_LM90=y +CONFIG_SENSORS_PWM_FAN=y +CONFIG_THERMAL=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +CONFIG_WATCHDOG=y +CONFIG_S3C2410_WATCHDOG=y +CONFIG_MFD_SEC_CORE=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_DEBUG=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_S2MPA01=y +CONFIG_REGULATOR_S2MPS11=y +CONFIG_REGULATOR_S5M8767=y +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_LIRC=m +CONFIG_RC_DEVICES=y +CONFIG_RC_ATI_REMOTE=m +CONFIG_IR_HIX5HD2=m +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_IGORPLUGUSB=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +CONFIG_IR_GPIOPLUG_CIR=m +CONFIG_DRM=y +CONFIG_DRM_PTN3460=y +CONFIG_DRM_PS8622=y +CONFIG_DRM_EXYNOS=y +CONFIG_DRM_EXYNOS_FIMD=y +CONFIG_DRM_EXYNOS_DSI=y +CONFIG_DRM_EXYNOS_HDMI=y +CONFIG_DRM_PANEL_SIMPLE=y +CONFIG_DRM_PANEL_S6E8AA0=y +CONFIG_FB_UDL=m +CONFIG_FB_SIMPLE=y +CONFIG_EXYNOS_VIDEO=y +CONFIG_EXYNOS_MIPI_DSI=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_PLATFORM=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_EXYNOS=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_EXYNOS=y +CONFIG_USB_ACM=m +CONFIG_USB_STORAGE=m +CONFIG_USB_DWC3=y +CONFIG_USB_DWC3_DEBUG=y +CONFIG_USB_GADGET=m +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_MMC=y +CONFIG_MMC_CLKGATE=y +CONFIG_MMC_BLOCK_MINORS=16 +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_S3C=y +CONFIG_MMC_SDHCI_S3C_DMA=y +CONFIG_MMC_DW=y +CONFIG_MMC_DW_IDMAC=y +CONFIG_MMC_DW_EXYNOS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=m +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_LEDS_TRIGGER_TRANSIENT=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_S5M=y +CONFIG_RTC_DRV_S3C=y +CONFIG_DMADEVICES=y +CONFIG_PL330_DMA=y +CONFIG_STAGING=y +CONFIG_FB_TFT=m +CONFIG_FB_TFT_AGM1264K_FL=m +CONFIG_FB_TFT_BD663474=m +CONFIG_FB_TFT_HX8340BN=m +CONFIG_FB_TFT_HX8347D=m +CONFIG_FB_TFT_HX8353D=m +CONFIG_FB_TFT_HX8357D=m +CONFIG_FB_TFT_ILI9163=m +CONFIG_FB_TFT_ILI9320=m +CONFIG_FB_TFT_ILI9325=m +CONFIG_FB_TFT_ILI9340=m +CONFIG_FB_TFT_ILI9341=m +CONFIG_FB_TFT_ILI9481=m +CONFIG_FB_TFT_ILI9486=m +CONFIG_FB_TFT_PCD8544=m +CONFIG_FB_TFT_RA8875=m +CONFIG_FB_TFT_S6D02A1=m +CONFIG_FB_TFT_S6D1121=m +CONFIG_FB_TFT_SSD1289=m +CONFIG_FB_TFT_SSD1306=m +CONFIG_FB_TFT_SSD1331=m +CONFIG_FB_TFT_SSD1351=m +CONFIG_FB_TFT_ST7735R=m +CONFIG_FB_TFT_TINYLCD=m +CONFIG_FB_TFT_TLS8204=m +CONFIG_FB_TFT_UC1701=m +CONFIG_FB_TFT_UPD161704=m +CONFIG_FB_TFT_WATTEROTT=m +CONFIG_FB_FLEX=m +CONFIG_FB_TFT_FBTFT_DEVICE=m +CONFIG_COMMON_CLK_S2MPS11=y +CONFIG_PM_DEVFREQ=y +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +CONFIG_DEVFREQ_GOV_PERFORMANCE=m +CONFIG_DEVFREQ_GOV_POWERSAVE=m +CONFIG_DEVFREQ_GOV_USERSPACE=m +CONFIG_PM_DEVFREQ_EVENT=y +CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU=y +CONFIG_EXTCON=y +CONFIG_IIO=y +CONFIG_EXYNOS_ADC=y +CONFIG_PWM=y +CONFIG_PWM_SAMSUNG=y +CONFIG_PHY_EXYNOS5250_SATA=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_EXT4_ENCRYPTION=m +CONFIG_EXT4_DEBUG=y +CONFIG_JBD_DEBUG=y +CONFIG_JBD2_DEBUG=y +CONFIG_REISERFS_FS=m +CONFIG_REISERFS_CHECK=y +CONFIG_REISERFS_PROC_INFO=y +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_DEBUG=y +CONFIG_JFS_STATISTICS=y +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_RT=y +CONFIG_XFS_DEBUG=y +CONFIG_FANOTIFY=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_QUOTA_DEBUG=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=y +CONFIG_CUSE=m +CONFIG_OVERLAY_FS=m +CONFIG_FSCACHE=m +CONFIG_FSCACHE_STATS=y +CONFIG_FSCACHE_HISTOGRAM=y +CONFIG_CACHEFILES=m +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_NTFS_FS=y +CONFIG_NTFS_RW=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_CONFIGFS_FS=y +CONFIG_ROMFS_FS=m +CONFIG_NFS_FS=m +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=m +CONFIG_NFS_SWAP=y +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_NFS_V4_1_MIGRATION=y +CONFIG_NFS_FSCACHE=y +CONFIG_NFS_USE_LEGACY_DNS=y +CONFIG_NFSD=m +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_PNFS=y +CONFIG_NFSD_FAULT_INJECTION=y +CONFIG_SUNRPC_DEBUG=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_INFO=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_DEBUG_RT_MUTEXES=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_DEBUG_MUTEXES=y +CONFIG_DEBUG_USER=y +CONFIG_PERSISTENT_KEYRINGS=y +CONFIG_BIG_KEYS=y +CONFIG_TRUSTED_KEYS=m +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITY_NETWORK_XFRM=y +CONFIG_SECURITY_SMACK=y +CONFIG_SECURITY_SMACK_BRINGUP=y +CONFIG_SECURITY_TOMOYO=y +CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER=y +CONFIG_SECURITY_APPARMOR=y +CONFIG_SECURITY_YAMA=y +CONFIG_SECURITY_YAMA_STACKED=y +CONFIG_INTEGRITY_SIGNATURE=y +CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y +CONFIG_IMA=y +CONFIG_IMA_APPRAISE=y +CONFIG_EVM=y +CONFIG_EVM_EXTRA_SMACK_XATTRS=y +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_CRYPTO_DEV_S5P=y +CONFIG_ARM_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM=y +CONFIG_CRYPTO_SHA256_ARM=y +CONFIG_CRYPTO_AES_ARM=m +CONFIG_CRC_CCITT=y +CONFIG_CRC_ITU_T=y +CONFIG_FONTS=y +CONFIG_FONT_7x14=y diff --git a/board/hardkernel/odroid-post.sh b/board/hardkernel/odroid-post.sh new file mode 100755 index 0000000..0e3ac05 --- /dev/null +++ b/board/hardkernel/odroid-post.sh @@ -0,0 +1,11 @@ +#! /bin/sh + +files="bl1.bin.hardkernel bl2.bin.hardkernel tzsw.bin.hardkernel sd_fusing.sh" + +for f in $files; do + cp -v ${BUILD_DIR}/uboot-${2}/sd_fuse/hardkernel/$f $BINARIES_DIR/$f +done + +cp -v board/hardkernel/odroidxu4-boot.ini ${BINARIES_DIR}/boot.ini + +cd $BINARIES_DIR && ln -vsf u-boot.bin u-boot.bin.hardkernel diff --git a/board/hardkernel/odroidxu4-boot.ini b/board/hardkernel/odroidxu4-boot.ini new file mode 100644 index 0000000..2deccbf --- /dev/null +++ b/board/hardkernel/odroidxu4-boot.ini @@ -0,0 +1,22 @@ +ODROIDXU-UBOOT-CONFIG + +# U-Boot Parameters (DO NOT MODIFY) +setenv version 4.2.0-rc1-41 +setenv zimage zImage +setenv fdtbin exynos5422-odroidxu4.dtb + +setenv zimage_addr_r 0x40008000 +setenv fdtbin_addr_r 0x44000000 + +setenv fdt_high "0xffffffff" + +# Default boot argument +setenv bootrootfs "root=/dev/mmcblk0p2 rootwait rw" +setenv console "console=ttySAC2,115200n8" + +setenv bootargs "${bootrootfs} ${console}" + +# boot commands +fatload mmc 0:1 ${zimage_addr_r} ${zimage} +fatload mmc 0:1 ${fdtbin_addr_r} ${fdtbin} +bootz ${zimage_addr_r} - ${fdtbin_addr_r}" diff --git a/board/hardkernel/readme.txt b/board/hardkernel/readme.txt new file mode 100644 index 0000000..d7a77db --- /dev/null +++ b/board/hardkernel/readme.txt @@ -0,0 +1,49 @@ +Odroid XU4 +========== + +http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825 +http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825 + +The Buildroot odroid_xu4_defconfig configuration builds: + + u-boot.bin -> u-boot.bin.hardkernel + zImage + exynos5422-odroidxu4.dtb + rootfs.ext3 + +and prepares: + + bl1.bin.hardkernel + bl2.bin.hardkernel + tzsw.bin.hardkernel + sd_fusing.sh + boot.ini + +As the board requires signed 1st bootloader, it is necessary to use +the provided BLOBs. + + +Installation: + + - suppose ${SD} points to eg. /dev/sdc (your SD card) + + 1) make odroid_xu4_defconfig + 2) make + 3) cd output/images + 4) create 2 partitions (fdisk, cfdisk, ...): + FAT (~128 MB), ext3 (rest). + + 5) sudo ./sd_fusing ${SD} + Installs the bootloaders, trust zone and the built U-Boot. + + 6) sudo dd if=rootfs.ext3 of=${SD}2 + Write to eg. /dev/sdc2. + + 7) sudo mount ${SD}1 /mnt + Mount the FAT partition (eg. /dev/sdc1). + + 8) sudo cp -v zImage boot.ini exynos5422-odroidxu4.dtb /mnt + 9) sudo umount ${SD}1 + + Boot... if the fan is running the 1st booting works. + The LED "Alive" should be blue while U-Boot is running. diff --git a/configs/odroid_xu4_defconfig b/configs/odroid_xu4_defconfig new file mode 100644 index 0000000..3790db7 --- /dev/null +++ b/configs/odroid_xu4_defconfig @@ -0,0 +1,27 @@ +BR2_arm=y +BR2_cortex_a15=y +BR2_ARM_FPU_NEON=y +BR2_KERNEL_HEADERS_4_2=y +BR2_TARGET_GENERIC_HOSTNAME="odroid-xu4" +BR2_TARGET_GENERIC_ISSUE="Welcome to Odroid XU4!" +BR2_TARGET_GENERIC_GETTY_PORT="ttySAC2" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/hardkernel/odroid-post.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_TARGET_UBOOT_VERSION)" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/tobetter/linux" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="odroidxu4-v4.2" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/hardkernel/linux-odroidxu4-v4.2.config" +BR2_LINUX_KERNEL_ZIMAGE=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="exynos5422-odroidxu4" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_3=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="odroid" +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/hardkernel/u-boot.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="odroidxu3-v2012.07"
This patch provides support for the board Odroid XU4: http://odroid.com/dokuwiki/doku.php?id=en:odroid-xu4 The support utilizes the Linux Kernel 4.2 experimental from: https://github.com/tobetter/linux odroidxu4-v4.2 (currently: 5eb40d45b291ee129cbfac2073f1ca7aa32ff4c5) and a customized linux defconfig which disables various (mostly) useless drivers to minimalize the Buildroot initial system. It compiles the r8152 driver into the kernel to have a working Ethernet out-of-the-box. The U-Boot SPL is not used as there are some binary blobs by Samsung (signed) needed to run. They are included in the used U-Boot: https://github.com/hardkernel/u-boot.git odroidxu3-v2012.07 (currently: 7aee723e3eb9a0935dbbfefc254735d2651a325d) Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> --- board/hardkernel/linux-odroidxu4-v4.2.config | 402 +++++++++++++++++++++++++++ board/hardkernel/odroid-post.sh | 11 + board/hardkernel/odroidxu4-boot.ini | 22 ++ board/hardkernel/readme.txt | 49 ++++ configs/odroid_xu4_defconfig | 27 ++ 5 files changed, 511 insertions(+) create mode 100644 board/hardkernel/linux-odroidxu4-v4.2.config create mode 100755 board/hardkernel/odroid-post.sh create mode 100644 board/hardkernel/odroidxu4-boot.ini create mode 100644 board/hardkernel/readme.txt create mode 100644 configs/odroid_xu4_defconfig