summaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2016-04-06 15:21:02 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2016-04-06 15:21:02 +0200
commitdfd6417b8a8bfcb3662cea030ef301fe5fb6e365 (patch)
tree66d5b87be975a722ee0308b6ccf8678571d0a4aa /target
parent70e4a17bd9b26a3f2f4c98bd1d54ae3a22a9f92a (diff)
add basic raspberry pi3 support (ARM 32Bit)
Diffstat (limited to 'target')
-rw-r--r--target/arm/Makefile34
-rw-r--r--target/arm/kernel/raspberry-pi318
-rw-r--r--target/arm/systems/raspberry-pi325
-rw-r--r--target/config/Config.in.cpu20
-rw-r--r--target/config/Config.in.runtime6
-rw-r--r--target/linux/config/Config.in.audio2
-rw-r--r--target/linux/config/Config.in.cpu2
-rw-r--r--target/linux/config/Config.in.graphics4
-rw-r--r--target/linux/config/Config.in.i2c4
-rw-r--r--target/linux/config/Config.in.kernel1
-rw-r--r--target/linux/config/Config.in.spi2
-rw-r--r--target/linux/config/Config.in.watchdog4
12 files changed, 82 insertions, 40 deletions
diff --git a/target/arm/Makefile b/target/arm/Makefile
index 3184351e1..faa4b6cd7 100644
--- a/target/arm/Makefile
+++ b/target/arm/Makefile
@@ -50,30 +50,16 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9)$(ADK_TARGET_SYSTEM_QEMU_ARM_VERS
@echo "Start qemu with following options:"
@echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${ADK_TARGET_CPU_ARCH}.img'
endif
-ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
+ifeq ($(ADK_TARGET_BOARD_BCM28XX)$(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
ifeq ($(ADK_APPLIANCE_KODI),y)
@echo "Use following command to install with a writable data partition"
- @echo "sudo ./scripts/install.sh -d 256 raspberry-pi /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "sudo ./scripts/install.sh -d 256 $(ADK_TARGET_SYSTEM) /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
@echo "If you want to update a card without loosing existing data on the writable partition use:"
- @echo "sudo ./scripts/install.sh -k -d 256 raspbrry-pi /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "sudo ./scripts/install.sh -k -d 256 $(ADK_TARGET_SYSTEM) /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
@echo "In both cases the cfgfs partition is _not_ removed!"
else
@echo "Use following command to install it on SD card:"
- @echo "sudo ./scripts/install.sh raspberry-pi /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
-endif
-endif
-ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI2),y)
-ifeq ($(ADK_APPLIANCE_KODI),y)
- @echo "Use following command to install with a writable data partition"
- @echo "sudo ./scripts/install.sh -d 256 raspberry-pi2 /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
- @echo "If you want to update a card without loosing existing data on the writable partition use:"
- @echo "sudo ./scripts/install.sh -k -d 256 raspberry-pi2 /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
- @echo "In both cases the cfgfs partition is _not_ removed!"
-else
- @echo "Use following command to install it on SD card:"
- @echo "sudo ./scripts/install.sh raspberry-pi2 /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
- @echo "Use following command to install with a writable data partition"
- @echo "sudo ./scripts/install.sh -d 256 raspberry-pi2 /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "sudo ./scripts/install.sh $(ADK_TARGET_SYSTEM) /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
endif
endif
ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
@@ -82,18 +68,6 @@ ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
@echo "Use following command to install with a writable data partition"
@echo "sudo ./scripts/install.sh -d 256 banana-pro /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
endif
-ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
-ifeq ($(ADK_APPLIANCE_KODI),y)
- @echo "Use following command to install with a writable data partition"
- @echo "sudo ./scripts/install.sh -d 256 solidrun-imx6 /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
- @echo "If you want to update a card without loosing existing data on the writable partition use:"
- @echo "sudo ./scripts/install.sh -k -d 256 solidrun-imx6 /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
- @echo "In both cases the cfgfs partition is _not_ removed!"
-else
- @echo "Use following command to install it on SD card:"
- @echo "sudo ./scripts/install.sh solidrun-imx6 /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
-endif
-endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
targethelp:
diff --git a/target/arm/kernel/raspberry-pi3 b/target/arm/kernel/raspberry-pi3
new file mode 100644
index 000000000..dd55d7ddf
--- /dev/null
+++ b/target/arm/kernel/raspberry-pi3
@@ -0,0 +1,18 @@
+CONFIG_ARM=y
+CONFIG_ARCH_BCM2709=y
+CONFIG_BCM2709_DT=y
+CONFIG_PHYS_OFFSET=0
+CONFIG_HAVE_ARM_ARCH_TIMER=y
+CONFIG_FIQ=y
+CONFIG_ATAGS=y
+CONFIG_KUSER_HELPERS=y
+CONFIG_ARM_ERRATA_643719=y
+CONFIG_BCM2708_NOL2CACHE=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_BRCM_CHAR_DRIVERS=y
+CONFIG_BCM2708_VCHIQ=y
+CONFIG_BCM2708_VCMEM=y
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+CONFIG_OF=y
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
diff --git a/target/arm/systems/raspberry-pi3 b/target/arm/systems/raspberry-pi3
new file mode 100644
index 000000000..6c34586c4
--- /dev/null
+++ b/target/arm/systems/raspberry-pi3
@@ -0,0 +1,25 @@
+config ADK_TARGET_SYSTEM_RASPBERRY_PI3
+ bool "Raspberry PI 3"
+ depends on ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_CPU_ARM_CORTEX_A53
+ select ADK_TARGET_BOARD_BCM28XX
+ select ADK_TARGET_WITH_VGA
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_CPU_FREQ
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_INPUT
+ select ADK_TARGET_WITH_SD
+ select ADK_TARGET_WITH_I2C
+ select ADK_TARGET_WITH_SPI
+ select ADK_TARGET_WITH_SMP
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
+ select ADK_TARGET_WITH_BLOCK
+ select ADK_TARGET_WITH_SOUND
+ select ADK_PACKAGE_BCM28XX_BOOTLOADER
+ select ADK_TARGET_WITH_ROOT_RW
+ select ADK_TARGET_KERNEL_ZIMAGE
+ select ADK_TARGET_KERNEL_WITH_COMPRESSION
+ help
+ Raspberry PI 3
+
diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu
index 689c9cdc7..ac717176d 100644
--- a/target/config/Config.in.cpu
+++ b/target/config/Config.in.cpu
@@ -111,6 +111,22 @@ config ADK_TARGET_CPU_ARM_CORTEX_A17
select ADK_TARGET_CPU_WITH_NEON
depends on ADK_TARGET_ARCH_ARM
+config ADK_TARGET_CPU_ARM_CORTEX_A53
+ bool "cortex-a53"
+ select ADK_TARGET_WITH_NPTL
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_CPU_WITH_FPU_VFPV4
+ select ADK_TARGET_CPU_WITH_NEON
+ depends on ADK_TARGET_ARCH_ARM
+
+config ADK_TARGET_CPU_ARM_CORTEX_A57
+ bool "cortex-a57"
+ select ADK_TARGET_WITH_NPTL
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_CPU_WITH_FPU_VFPV4
+ select ADK_TARGET_CPU_WITH_NEON
+ depends on ADK_TARGET_ARCH_ARM
+
config ADK_TARGET_CPU_ARM_CORTEX_M4
bool "cortex-m4"
select ADK_TARGET_UCLINUX
@@ -1393,6 +1409,8 @@ config ADK_TARGET_GCC_CPU
default "cortex-a9" if ADK_TARGET_CPU_ARM_CORTEX_A9
default "cortex-a15" if ADK_TARGET_CPU_ARM_CORTEX_A15
default "cortex-a17" if ADK_TARGET_CPU_ARM_CORTEX_A17
+ default "cortex-a53" if ADK_TARGET_CPU_ARM_CORTEX_A53
+ default "cortex-a57" if ADK_TARGET_CPU_ARM_CORTEX_A57
default "cortex-a53" if ADK_TARGET_CPU_AARCH64_CORTEX_A53
default "cortex-a57" if ADK_TARGET_CPU_AARCH64_CORTEX_A57
default "cortex-m3" if ADK_TARGET_CPU_ARM_CORTEX_M3
@@ -1573,6 +1591,8 @@ config ADK_TARGET_CPU_TYPE
default "arm1176jzf_s" if ADK_TARGET_CPU_ARM_ARM1176JZF_S
default "arm926ej_s" if ADK_TARGET_CPU_ARM_ARM926EJ_S
default "mpcore" if ADK_TARGET_CPU_ARM_ARM11MPCORE
+ default "cortex_a53" if ADK_TARGET_CPU_ARM_CORTEX_A53
+ default "cortex_a57" if ADK_TARGET_CPU_ARM_CORTEX_A57
default "cortex_a53" if ADK_TARGET_CPU_AARCH64_CORTEX_A53
default "cortex_a57" if ADK_TARGET_CPU_AARCH64_CORTEX_A57
default "mips32" if ADK_TARGET_CPU_MIPS_MIPS32
diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime
index 801163b52..460c849d6 100644
--- a/target/config/Config.in.runtime
+++ b/target/config/Config.in.runtime
@@ -109,6 +109,7 @@ config ADK_RUNTIME_TMPFS_SIZE
default "32768" if ADK_TARGET_SYSTEM_IBM_X40
default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI
default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI2
+ default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI3
default "32768" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
default "8192" if ADK_TARGET_SYSTEM_MIKROTIK_RB532
default "1024"
@@ -212,6 +213,7 @@ config ADK_RUNTIME_GETTY_VGA
default y if ADK_TARGET_QEMU_WITH_GRAPHIC
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI2
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3
default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_IBM_X40
@@ -230,6 +232,7 @@ config ADK_RUNTIME_GETTY_SERIAL
default n if ADK_TARGET_QEMU_WITH_GRAPHIC
default n if ADK_TARGET_SYSTEM_RASPBERRY_PI
default n if ADK_TARGET_SYSTEM_RASPBERRY_PI2
+ default n if ADK_TARGET_SYSTEM_RASPBERRY_PI3
default n if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default n if ADK_TARGET_SYSTEM_IBM_X40
default n if ADK_TARGET_SYSTEM_ARANYM_M68K
@@ -390,10 +393,11 @@ config ADK_BINSH_ZSH
endchoice
-# workaround for USB ethernet f.e. Raspberry Pi2
+# workaround for USB ethernet f.e. Raspberry Pi 2/3
config ADK_RUNTIME_WAIT_FOR_ETHERNET
bool
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI2
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3
config ADK_SIMPLE_NETWORK_CONFIG
bool "simple network configuration"
diff --git a/target/linux/config/Config.in.audio b/target/linux/config/Config.in.audio
index 62672bb98..66e597764 100644
--- a/target/linux/config/Config.in.audio
+++ b/target/linux/config/Config.in.audio
@@ -179,7 +179,7 @@ config ADK_KERNEL_SND_PXA2XX_SOC_SPITZ
default n
config ADK_KERNEL_SND_BCM2835
- tristate "BCM2835 onboard soundcard"
+ tristate "BCM28XX onboard soundcard"
select ADK_KERNEL_SND
select ADK_KERNEL_SND_ARM
depends on ADK_TARGET_BOARD_BCM28XX
diff --git a/target/linux/config/Config.in.cpu b/target/linux/config/Config.in.cpu
index f3c30db5d..43b5d107c 100644
--- a/target/linux/config/Config.in.cpu
+++ b/target/linux/config/Config.in.cpu
@@ -55,7 +55,7 @@ config ADK_KERNEL_ARM_IMX6Q_CPUFREQ
default n
config ADK_KERNEL_ARM_BCM2835_CPUFREQ
- bool "CPU frequency support for BCM2835 boards"
+ bool "CPU frequency support for BCM28XX boards"
select ADK_KERNEL_CPU_FREQ
depends on ADK_TARGET_BOARD_BCM28XX
default y if ADK_TARGET_BOARD_BCM28XX
diff --git a/target/linux/config/Config.in.graphics b/target/linux/config/Config.in.graphics
index 969134a2c..dd3adfba7 100644
--- a/target/linux/config/Config.in.graphics
+++ b/target/linux/config/Config.in.graphics
@@ -242,7 +242,7 @@ config ADK_KERNEL_FB_SM7XX
Framebuffer support for Lemote Yeelong.
config ADK_KERNEL_FB_BCM2708
- bool "Framebuffer support for BCM2835 boards"
+ bool "Framebuffer support for BCM28XX boards"
select ADK_KERNEL_DRM if ADK_TARGET_KERNEL_VERSION_4_4
select ADK_KERNEL_DRM_VC4 if ADK_TARGET_KERNEL_VERSION_4_4
select ADK_KERNEL_FB
@@ -252,7 +252,7 @@ config ADK_KERNEL_FB_BCM2708
default n
depends on ADK_TARGET_BOARD_BCM28XX
help
- Framebuffer support for BCM2835 boards.
+ Framebuffer support for BCM28XX boards.
config ADK_KERNEL_FB_RADEON
bool "Framebuffer support for RADEON chips"
diff --git a/target/linux/config/Config.in.i2c b/target/linux/config/Config.in.i2c
index 5956073d3..6dff40fe2 100644
--- a/target/linux/config/Config.in.i2c
+++ b/target/linux/config/Config.in.i2c
@@ -11,7 +11,7 @@ config ADK_KERNEL_I2C_CHARDEV
tristate
config ADK_KERNEL_I2C_BCM2708
- tristate "I2C driver for BCM2835 boards"
+ tristate "I2C driver for BCM28XX boards"
select ADK_KERNEL_I2C
select ADK_KERNEL_REGMAP
select ADK_KERNEL_REGMAP_I2C
@@ -20,7 +20,7 @@ config ADK_KERNEL_I2C_BCM2708
default y if ADK_TARGET_BOARD_BCM28XX
default n
help
- I2C driver for BCM2835 boards.
+ I2C driver for BCM28XX boards.
config ADK_KERNEL_I2C_SUNXI
tristate "I2C driver for SUNXI boards"
diff --git a/target/linux/config/Config.in.kernel b/target/linux/config/Config.in.kernel
index ccfb22c0a..230d6770b 100644
--- a/target/linux/config/Config.in.kernel
+++ b/target/linux/config/Config.in.kernel
@@ -317,6 +317,7 @@ config ADK_KERNEL_HIGHMEM
bool "Enable high memory"
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI2
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3
default y if ADK_TARGET_MODEL_CUBOX_I4PRO
default y if ADK_TARGET_MODEL_CUBOX_I2ULTRA
default y if ADK_TARGET_MODEL_CUBOX_I2EX
diff --git a/target/linux/config/Config.in.spi b/target/linux/config/Config.in.spi
index 8d1424a98..b7c1df0a7 100644
--- a/target/linux/config/Config.in.spi
+++ b/target/linux/config/Config.in.spi
@@ -27,7 +27,7 @@ config ADK_KERNEL_SPI_PXA2XX
select ADK_KERNEL_SPI
config ADK_KERNEL_SPI_BCM2835
- tristate "SPI driver for BCM2835 boards"
+ tristate "SPI driver for BCM28XX boards"
select ADK_KERNEL_SPI
select ADK_KERNEL_SPI_MASTER
select ADK_KERNEL_SPI_BITBANG
diff --git a/target/linux/config/Config.in.watchdog b/target/linux/config/Config.in.watchdog
index f277c8c01..e348bfbb5 100644
--- a/target/linux/config/Config.in.watchdog
+++ b/target/linux/config/Config.in.watchdog
@@ -16,13 +16,13 @@ config ADK_KERNEL_CS5535_CLOCK_EVENT_SRC
bool
config ADK_KERNEL_BCM2708_WDT
- bool "Hardware Watchdog for BCM2835 boards"
+ bool "Hardware Watchdog for BCM28XX boards"
select ADK_KERNEL_WATCHDOG
depends on ADK_TARGET_BOARD_BCM28XX
default y if ADK_TARGET_BOARD_BCM28XX
default n
help
- Watchdog driver for BCM2835 boards.
+ Watchdog driver for BCM28XX boards.
config ADK_KERNEL_IMX2_WDT
bool "Hardware Watchdog for IMX6 boards"