mvebu: add Kobol Helios 4 device
The Helios 4 is a NAS from Kobol that is powered by an Armada 38x MicroSOM from Solidrun, similarly to Clearfog. This device has: -Armada 38x CPU (dual core ARMv7 1.6 Ghz) -2 GB of ECC RAM -Gigabit ethernet (Marvell) -2x USB 3.0 ports -4x Sata 3.0 ports -i2c header (J9 |>GND|SDA|SCL|VCC) -2x 3-pin fan headers with PWM -micro-usb port is a TTL/UART to USB converter connected to TTL -MicroSD card slot -System, 4xSata and 1xUSB LEDs NOT WORKING: fan control Fan Control requires a kernel patch that is available in the Armbian project (the "default firmware" of this device) and named mvebu-gpio-remove-hardcoded -timer-assignment This patch isn't acceptable by OpenWrt, it should be upstreamed. I also have that patch in my own local OpenWrt builds, in case you want a more clean and less confusing patch for upstreaming. To install, write the disk image on a micro SD card with dd or win32 disk imager, insert the card in the slot. Check that the dip switch battery for boot selection is as follows Switch 1 and 2 down/off, switches 3, 4, 5 up/on. Signed-off-by: Alberto Bursi <bobafetthotmail@gmail.com>
This commit is contained in:
		
							parent
							
								
									f013cc4b26
								
							
						
					
					
						commit
						480003e9eb
					
				| @ -31,6 +31,7 @@ CONFIG_ARCH_USE_BUILTIN_BSWAP=y | |||||||
| CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y | CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y | ||||||
| CONFIG_ARCH_WANT_GENERAL_HUGETLB=y | CONFIG_ARCH_WANT_GENERAL_HUGETLB=y | ||||||
| CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y | CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y | ||||||
|  | CONFIG_ARCH_WANT_LIBATA_LEDS=y | ||||||
| CONFIG_ARM=y | CONFIG_ARM=y | ||||||
| CONFIG_ARMADA_370_CLK=y | CONFIG_ARMADA_370_CLK=y | ||||||
| CONFIG_ARMADA_370_XP_IRQ=y | CONFIG_ARMADA_370_XP_IRQ=y | ||||||
| @ -64,6 +65,7 @@ CONFIG_ARM_UNWIND=y | |||||||
| CONFIG_ARM_VIRT_EXT=y | CONFIG_ARM_VIRT_EXT=y | ||||||
| CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y | CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y | ||||||
| CONFIG_ATA=y | CONFIG_ATA=y | ||||||
|  | CONFIG_ATA_LEDS=y | ||||||
| CONFIG_ATAGS=y | CONFIG_ATAGS=y | ||||||
| CONFIG_AUTO_ZRELADDR=y | CONFIG_AUTO_ZRELADDR=y | ||||||
| CONFIG_BLK_DEV_LOOP=y | CONFIG_BLK_DEV_LOOP=y | ||||||
|  | |||||||
| @ -37,6 +37,7 @@ CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y | |||||||
| CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y | CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y | ||||||
| CONFIG_ARCH_WANT_GENERAL_HUGETLB=y | CONFIG_ARCH_WANT_GENERAL_HUGETLB=y | ||||||
| CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y | CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y | ||||||
|  | CONFIG_ARCH_WANT_LIBATA_LEDS=y | ||||||
| CONFIG_ARM=y | CONFIG_ARM=y | ||||||
| CONFIG_ARMADA_370_CLK=y | CONFIG_ARMADA_370_CLK=y | ||||||
| CONFIG_ARMADA_370_XP_IRQ=y | CONFIG_ARMADA_370_XP_IRQ=y | ||||||
| @ -69,6 +70,7 @@ CONFIG_ARM_UNWIND=y | |||||||
| CONFIG_ARM_VIRT_EXT=y | CONFIG_ARM_VIRT_EXT=y | ||||||
| CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y | CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y | ||||||
| CONFIG_ATA=y | CONFIG_ATA=y | ||||||
|  | CONFIG_ATA_LEDS=y | ||||||
| CONFIG_ATAGS=y | CONFIG_ATAGS=y | ||||||
| CONFIG_AUTO_ZRELADDR=y | CONFIG_AUTO_ZRELADDR=y | ||||||
| CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y | CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y | ||||||
|  | |||||||
| @ -12,6 +12,9 @@ board=$(board_name) | |||||||
| boardname="${board##*,}" | boardname="${board##*,}" | ||||||
| 
 | 
 | ||||||
| case "$board" in | case "$board" in | ||||||
|  | kobol,helios4) | ||||||
|  | 	ucidef_set_led_usbport "USB" "USB" "helios4:green:usb" "usb1-port1" "usb2-port1" "usb3-port1" "usb4-port1" "usb5-port1" | ||||||
|  | 	;; | ||||||
| linksys,wrt1200ac) | linksys,wrt1200ac) | ||||||
| 	ucidef_set_led_netdev "wan" "WAN" "pca963x:caiman:white:wan" "wan" | 	ucidef_set_led_netdev "wan" "WAN" "pca963x:caiman:white:wan" "wan" | ||||||
| 	ucidef_set_led_usbport "usb1" "USB 1" "pca963x:caiman:white:usb2" "usb1-port1" | 	ucidef_set_led_usbport "usb1" "USB 1" "pca963x:caiman:white:usb2" "usb1-port1" | ||||||
|  | |||||||
| @ -10,6 +10,7 @@ REQUIRE_IMAGE_METADATA=1 | |||||||
| platform_check_image() { | platform_check_image() { | ||||||
| 	case "$(board_name)" in | 	case "$(board_name)" in | ||||||
| 	cznic,turris-omnia|\ | 	cznic,turris-omnia|\ | ||||||
|  | 	kobol,helios4|\ | ||||||
| 	solidrun,clearfog-base-a1|\ | 	solidrun,clearfog-base-a1|\ | ||||||
| 	solidrun,clearfog-pro-a1) | 	solidrun,clearfog-pro-a1) | ||||||
| 		platform_check_image_sdcard "$1" | 		platform_check_image_sdcard "$1" | ||||||
| @ -26,6 +27,7 @@ platform_do_upgrade() { | |||||||
| 		nand_do_upgrade "$1" | 		nand_do_upgrade "$1" | ||||||
| 		;; | 		;; | ||||||
| 	cznic,turris-omnia|\ | 	cznic,turris-omnia|\ | ||||||
|  | 	kobol,helios4|\ | ||||||
| 	solidrun,clearfog-base-a1|\ | 	solidrun,clearfog-base-a1|\ | ||||||
| 	solidrun,clearfog-pro-a1) | 	solidrun,clearfog-pro-a1) | ||||||
| 		platform_do_upgrade_sdcard "$1" | 		platform_do_upgrade_sdcard "$1" | ||||||
| @ -46,6 +48,7 @@ platform_do_upgrade() { | |||||||
| platform_copy_config() { | platform_copy_config() { | ||||||
| 	case "$(board_name)" in | 	case "$(board_name)" in | ||||||
| 	cznic,turris-omnia|\ | 	cznic,turris-omnia|\ | ||||||
|  | 	kobol,helios4|\ | ||||||
| 	solidrun,clearfog-base-a1|\ | 	solidrun,clearfog-base-a1|\ | ||||||
| 	solidrun,clearfog-pro-a1) | 	solidrun,clearfog-pro-a1) | ||||||
| 		platform_copy_config_sdcard | 		platform_copy_config_sdcard | ||||||
|  | |||||||
| @ -51,6 +51,20 @@ define Device/globalscale_mirabox | |||||||
| endef | endef | ||||||
| TARGET_DEVICES += globalscale_mirabox | TARGET_DEVICES += globalscale_mirabox | ||||||
| 
 | 
 | ||||||
|  | define Device/kobol_helios4 | ||||||
|  |   DEVICE_VENDOR := Kobol | ||||||
|  |   DEVICE_MODEL := Helios4 | ||||||
|  |   KERNEL_INSTALL := 1 | ||||||
|  |   KERNEL := kernel-bin | ||||||
|  |   DEVICE_PACKAGES := mkf2fs e2fsprogs partx-utils | ||||||
|  |   IMAGES := sdcard.img.gz | ||||||
|  |   IMAGE/sdcard.img.gz := boot-scr | boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata | ||||||
|  |   SOC := armada-388 | ||||||
|  |   UBOOT := helios4-u-boot-spl.kwb | ||||||
|  |   BOOT_SCRIPT := clearfog | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += kobol_helios4 | ||||||
|  | 
 | ||||||
| define Device/linksys | define Device/linksys | ||||||
|   $(Device/NAND-128K) |   $(Device/NAND-128K) | ||||||
|   DEVICE_VENDOR := Linksys |   DEVICE_VENDOR := Linksys | ||||||
|  | |||||||
| @ -0,0 +1,28 @@ | |||||||
|  | --- a/arch/arm/boot/dts/armada-388-helios4.dts
 | ||||||
|  | +++ b/arch/arm/boot/dts/armada-388-helios4.dts
 | ||||||
|  | @@ -15,6 +15,13 @@
 | ||||||
|  |  	model = "Helios4"; | ||||||
|  |  	compatible = "kobol,helios4", "marvell,armada388", | ||||||
|  |  		"marvell,armada385", "marvell,armada380"; | ||||||
|  | +		
 | ||||||
|  | +	aliases {
 | ||||||
|  | +		led-boot = &led_status;
 | ||||||
|  | +		led-failsafe = &led_status;
 | ||||||
|  | +		led-running = &led_status;
 | ||||||
|  | +		led-upgrade = &led_status;
 | ||||||
|  | +	};
 | ||||||
|  |   | ||||||
|  |  	memory { | ||||||
|  |  		device_type = "memory"; | ||||||
|  | @@ -70,10 +77,9 @@
 | ||||||
|  |   | ||||||
|  |  	system-leds { | ||||||
|  |  		compatible = "gpio-leds"; | ||||||
|  | -		status-led {
 | ||||||
|  | +		led_status: status-led {
 | ||||||
|  |  			label = "helios4:green:status"; | ||||||
|  |  			gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; | ||||||
|  | -			linux,default-trigger = "heartbeat";
 | ||||||
|  |  			default-state = "on"; | ||||||
|  |  		}; | ||||||
|  |   | ||||||
| @ -0,0 +1,10 @@ | |||||||
|  | --- a/arch/arm/mach-mvebu/Kconfig
 | ||||||
|  | +++ b/arch/arm/mach-mvebu/Kconfig
 | ||||||
|  | @@ -68,6 +68,7 @@
 | ||||||
|  |  	select HAVE_SMP | ||||||
|  |  	select MACH_MVEBU_V7 | ||||||
|  |  	select PINCTRL_ARMADA_38X | ||||||
|  | +	select ARCH_WANT_LIBATA_LEDS
 | ||||||
|  |  	help | ||||||
|  |  	  Say 'Y' here if you want your kernel to support boards based | ||||||
|  |  	  on the Marvell Armada 380/385 SoC with device tree. | ||||||
| @ -0,0 +1,28 @@ | |||||||
|  | --- a/arch/arm/boot/dts/armada-388-helios4.dts
 | ||||||
|  | +++ b/arch/arm/boot/dts/armada-388-helios4.dts
 | ||||||
|  | @@ -15,6 +15,13 @@
 | ||||||
|  |  	model = "Helios4"; | ||||||
|  |  	compatible = "kobol,helios4", "marvell,armada388", | ||||||
|  |  		"marvell,armada385", "marvell,armada380"; | ||||||
|  | +		
 | ||||||
|  | +	aliases {
 | ||||||
|  | +		led-boot = &led_status;
 | ||||||
|  | +		led-failsafe = &led_status;
 | ||||||
|  | +		led-running = &led_status;
 | ||||||
|  | +		led-upgrade = &led_status;
 | ||||||
|  | +	};
 | ||||||
|  |   | ||||||
|  |  	memory { | ||||||
|  |  		device_type = "memory"; | ||||||
|  | @@ -70,10 +77,9 @@
 | ||||||
|  |   | ||||||
|  |  	system-leds { | ||||||
|  |  		compatible = "gpio-leds"; | ||||||
|  | -		status-led {
 | ||||||
|  | +		led_status: status-led {
 | ||||||
|  |  			label = "helios4:green:status"; | ||||||
|  |  			gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; | ||||||
|  | -			linux,default-trigger = "heartbeat";
 | ||||||
|  |  			default-state = "on"; | ||||||
|  |  		}; | ||||||
|  |   | ||||||
| @ -0,0 +1,10 @@ | |||||||
|  | --- a/arch/arm/mach-mvebu/Kconfig
 | ||||||
|  | +++ b/arch/arm/mach-mvebu/Kconfig
 | ||||||
|  | @@ -68,6 +68,7 @@
 | ||||||
|  |  	select HAVE_SMP | ||||||
|  |  	select MACH_MVEBU_V7 | ||||||
|  |  	select PINCTRL_ARMADA_38X | ||||||
|  | +	select ARCH_WANT_LIBATA_LEDS
 | ||||||
|  |  	help | ||||||
|  |  	  Say 'Y' here if you want your kernel to support boards based | ||||||
|  |  	  on the Marvell Armada 380/385 SoC with device tree. | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user