summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2015-11-29 14:31:01 +0100
committerKhem Raj <raj.khem@gmail.com>2015-12-06 23:18:52 -0800
commitd232376fa7b0bf3f22d57c6c747983d00c67e34d (patch)
tree8b7cc37d8e5e7da9e1e6b8dbe84656844d841a70
parent2354b2d37412c76d147b515a5f1463e3ae6a775f (diff)
downloadmeta-altera-d232376fa7b0bf3f22d57c6c747983d00c67e34d.tar.gz
Add generic-nios2 machine to meta-altera
Add support for the Altera NIOS2 architecture and a generic machine config. Also add Linux kernel defconfig for linux-yocto 4.1 package. Heavily based on work by Walter Goossens <waltergoossens@home.nl> Signed-off-by: Marek Vasut <marex@denx.de> Cc: Khem Raj <raj.khem@gmail.com> Cc: Ley Foon Tan <lftan@altera.com> Cc: Thomas Chou <thomas@wytron.com.tw> Cc: Walter Goossens <waltergoossens@home.nl> Cc: Yves Vandervennet <yvanderv@opensource.altera.com>
-rw-r--r--conf/machine/generic-nios2.conf11
-rw-r--r--conf/machine/include/nios2/feature-nios2-divide.inc4
-rw-r--r--conf/machine/include/nios2/feature-nios2-fpu.inc15
-rw-r--r--conf/machine/include/nios2/feature-nios2-multiply.inc10
-rw-r--r--conf/machine/include/tune-nios2.inc20
-rw-r--r--recipes-kernel/linux/config/generic-nios2/defconfig82
-rw-r--r--recipes-kernel/linux/linux-yocto_4.1.bbappend17
7 files changed, 159 insertions, 0 deletions
diff --git a/conf/machine/generic-nios2.conf b/conf/machine/generic-nios2.conf
new file mode 100644
index 0000000..3177709
--- /dev/null
+++ b/conf/machine/generic-nios2.conf
@@ -0,0 +1,11 @@
1#@TYPE: Machine
2#@Name: generic NIOS2 machine
3#@DESCRIPTION: Machine configuration for nios2 machines
4
5require conf/machine/include/tune-nios2.inc
6
7TUNE_ARCH = "nios2"
8
9MACHINE_FEATURES = "kernel26 serial"
10
11KERNEL_IMAGETYPE = "zImage"
diff --git a/conf/machine/include/nios2/feature-nios2-divide.inc b/conf/machine/include/nios2/feature-nios2-divide.inc
new file mode 100644
index 0000000..5a29570
--- /dev/null
+++ b/conf/machine/include/nios2/feature-nios2-divide.inc
@@ -0,0 +1,4 @@
1TUNEVALID[hw-div] = "Enable Nios2 hardware divider."
2NIOS2CCARGSDIV = "${@bb.utils.contains("TUNE_FEATURES", "hw-div", "-mhw-div", "" ,d)}"
3NIOS2PKGDIV = "${@bb.utils.contains("TUNE_FEATURES", "hw-div", "-div", "" ,d)}"
4
diff --git a/conf/machine/include/nios2/feature-nios2-fpu.inc b/conf/machine/include/nios2/feature-nios2-fpu.inc
new file mode 100644
index 0000000..5baeb40
--- /dev/null
+++ b/conf/machine/include/nios2/feature-nios2-fpu.inc
@@ -0,0 +1,15 @@
1TARGET_FPU = "fpu-other"
2
3TUNEVALID[fpu-soft] = "Use Nios2 software FPU"
4TUNEVALID[fpu-custom] = "Enable Nios2 hardware FPU"
5TUNEVALID[fpu-customdiv] = "Enable Nios2 hardware FPU with divider"
6
7# Establish which fpu is configured in TUNE_FEATURES. Soft is the default for gcc.
8NIOS2CCARGSFPU_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "fpu-custom", "-mcustom-fpu-cfg=60-1", "", d)}"
9NIOS2CCARGSFPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-customdiv", "-mcustom-fpu-cfg=60-2", "${NIOS2CCARGSFPU_BASIC}", d)}"
10
11NIOS2PKGFPU_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "fpu-custom", "-fpu", "", d)}"
12NIOS2PKGFPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-customdiv", "-fpudiv", "${NIOS2PKGFPU_BASIC}", d)}"
13
14TUNECONFLICTS[fpu-custom] = "fpu-soft fpu-customdiv"
15TUNECONFLICTS[fpu-customdiv] = "fpu-soft fpu-custom"
diff --git a/conf/machine/include/nios2/feature-nios2-multiply.inc b/conf/machine/include/nios2/feature-nios2-multiply.inc
new file mode 100644
index 0000000..3dc2ccb
--- /dev/null
+++ b/conf/machine/include/nios2/feature-nios2-multiply.inc
@@ -0,0 +1,10 @@
1TUNEVALID[hw-mul] = "Enable Nios2 Hardware Multiply"
2TUNEVALID[hw-mulx] = "Enable Nios2 Extended Hardware Multiply"
3
4# Establish which Multiply output result size to use
5NIOS2CCARGSMUL = "${@bb.utils.contains("TUNE_FEATURES", "hw-mul", "-mhw-mul", "" ,d)}"
6NIOS2CCARGSMUL += "${@bb.utils.contains("TUNE_FEATURES", "hw-mulx", "-mhw-mulx", "" ,d)}"
7
8NIOS2PKGMUL_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "hw-mul", "-mul", "" ,d)}"
9NIOS2PKGMUL = "${@bb.utils.contains("TUNE_FEATURES", "hw-mulx", "-mulx", "${NIOS2PKGMUL_BASIC}" ,d)}"
10
diff --git a/conf/machine/include/tune-nios2.inc b/conf/machine/include/tune-nios2.inc
new file mode 100644
index 0000000..4a132a4
--- /dev/null
+++ b/conf/machine/include/tune-nios2.inc
@@ -0,0 +1,20 @@
1#@TYPE: Machine configuration
2#@NAME: nios2
3
4DEFAULTTUNE ?= "nios2"
5
6TUNE_ARCH = "nios2el"
7
8require conf/machine/include/nios2/feature-nios2-multiply.inc
9require conf/machine/include/nios2/feature-nios2-divide.inc
10require conf/machine/include/nios2/feature-nios2-fpu.inc
11
12AVAILTUNES += "nios2"
13TUNEVALID[nios2] = "nios2"
14TUNE_FEATURES_tune-nios2 += "nios2"
15
16TUNE_CCARGS += "-mel ${NIOS2CCARGSDIV} ${NIOS2CCARGSFPU} ${NIOS2CCARGSMUL}"
17TUNE_PKGARCH = "nios2${NIOS2PKGMUL}${NIOS2PKGDIV}${NIOS2PKGFPU}"
18PACKAGE_EXTRA_ARCHS_tune-nios2 = "${TUNE_PKGARCH}"
19
20CSL_TARGET_SYS_nios2 = "nios2-linux-gnu"
diff --git a/recipes-kernel/linux/config/generic-nios2/defconfig b/recipes-kernel/linux/config/generic-nios2/defconfig
new file mode 100644
index 0000000..7d712aa
--- /dev/null
+++ b/recipes-kernel/linux/config/generic-nios2/defconfig
@@ -0,0 +1,82 @@
1CONFIG_SYSVIPC=y
2CONFIG_BSD_PROCESS_ACCT=y
3CONFIG_LOG_BUF_SHIFT=14
4CONFIG_SYSCTL_SYSCALL=y
5# CONFIG_ELF_CORE is not set
6# CONFIG_EPOLL is not set
7# CONFIG_SIGNALFD is not set
8# CONFIG_TIMERFD is not set
9# CONFIG_EVENTFD is not set
10# CONFIG_SHMEM is not set
11# CONFIG_AIO is not set
12CONFIG_EMBEDDED=y
13CONFIG_SLAB=y
14CONFIG_MODULES=y
15CONFIG_MODULE_UNLOAD=y
16CONFIG_MEM_BASE=0x10000000
17CONFIG_NIOS2_HW_MUL_SUPPORT=y
18CONFIG_NIOS2_HW_DIV_SUPPORT=y
19CONFIG_CUSTOM_CACHE_SETTINGS=y
20CONFIG_NIOS2_DCACHE_SIZE=0x8000
21CONFIG_NIOS2_ICACHE_SIZE=0x8000
22# CONFIG_CMDLINE_IGNORE_DTB is not set
23CONFIG_PASS_CMDLINE=y
24CONFIG_BOOT_LINK_OFFSET=0x00800000
25CONFIG_NET=y
26CONFIG_PACKET=y
27CONFIG_UNIX=y
28CONFIG_INET=y
29CONFIG_IP_MULTICAST=y
30CONFIG_IP_PNP=y
31CONFIG_IP_PNP_DHCP=y
32CONFIG_IP_PNP_BOOTP=y
33CONFIG_IP_PNP_RARP=y
34# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
35# CONFIG_INET_XFRM_MODE_TUNNEL is not set
36# CONFIG_INET_XFRM_MODE_BEET is not set
37# CONFIG_INET_LRO is not set
38# CONFIG_IPV6 is not set
39# CONFIG_WIRELESS is not set
40CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
41CONFIG_DEVTMPFS=y
42CONFIG_DEVTMPFS_MOUNT=y
43# CONFIG_FW_LOADER is not set
44CONFIG_MTD=y
45CONFIG_MTD_CMDLINE_PARTS=y
46CONFIG_MTD_BLOCK=y
47CONFIG_MTD_CFI=y
48CONFIG_MTD_CFI_INTELEXT=y
49CONFIG_MTD_CFI_AMDSTD=y
50CONFIG_MTD_PHYSMAP_OF=y
51CONFIG_BLK_DEV_LOOP=y
52CONFIG_NETDEVICES=y
53CONFIG_ALTERA_TSE=y
54CONFIG_MARVELL_PHY=y
55# CONFIG_WLAN is not set
56# CONFIG_INPUT_MOUSE is not set
57# CONFIG_SERIO_SERPORT is not set
58# CONFIG_VT is not set
59CONFIG_SERIAL_ALTERA_JTAGUART=y
60CONFIG_SERIAL_ALTERA_JTAGUART_CONSOLE=y
61CONFIG_SERIAL_ALTERA_UART=y
62# CONFIG_HW_RANDOM is not set
63CONFIG_GPIOLIB=y
64CONFIG_GPIO_SYSFS=y
65CONFIG_GPIO_ALTERA=y
66# CONFIG_HWMON is not set
67# CONFIG_USB_SUPPORT is not set
68CONFIG_NEW_LEDS=y
69CONFIG_LEDS_CLASS=y
70CONFIG_LEDS_GPIO=y
71CONFIG_LEDS_TRIGGERS=y
72CONFIG_LEDS_TRIGGER_HEARTBEAT=y
73# CONFIG_DNOTIFY is not set
74# CONFIG_INOTIFY_USER is not set
75CONFIG_JFFS2_FS=y
76CONFIG_NFS_FS=y
77CONFIG_NFS_V3_ACL=y
78CONFIG_ROOT_NFS=y
79CONFIG_SUNRPC_DEBUG=y
80CONFIG_DEBUG_INFO=y
81# CONFIG_ENABLE_WARN_DEPRECATED is not set
82CONFIG_KGDB=y
diff --git a/recipes-kernel/linux/linux-yocto_4.1.bbappend b/recipes-kernel/linux/linux-yocto_4.1.bbappend
new file mode 100644
index 0000000..06bec2c
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_4.1.bbappend
@@ -0,0 +1,17 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/config:"
2
3COMPATIBLE_MACHINE_generic-nios2 = "generic-nios2"
4SRC_URI_append_nios2 = " file://defconfig "
5
6# Force machine Tunings in kernel config
7do_configure_prepend_nios2() {
8 sed -i -e /CONFIG_NIOS2_HW_MUL_SUPPORT/d ${WORKDIR}/defconfig
9 sed -i -e /CONFIG_NIOS2_HW_MULX_SUPPORT/d ${WORKDIR}/defconfig
10 sed -i -e /CONFIG_NIOS2_HW_DIV_SUPPORT/d ${WORKDIR}/defconfig
11 sed -i -e /CONFIG_NIOS2_FPU_SUPPORT/d ${WORKDIR}/defconfig
12 echo "${@base_contains('TUNE_FEATURES', 'hw-mul', 'CONFIG_NIOS2_HW_MUL_SUPPORT=y', '#CONFIG_NIOS2_HW_MUL_SUPPORT is not set', d)}" >> ${WORKDIR}/defconfig
13 echo "${@base_contains('TUNE_FEATURES', 'hw-mulx', 'CONFIG_NIOS2_HW_MULX_SUPPORT=y', '#CONFIG_NIOS2_HW_MULX_SUPPORT is not set', d)}" >> ${WORKDIR}/defconfig
14 echo "${@base_contains('TUNE_FEATURES', 'hw-div', 'CONFIG_NIOS2_HW_DIV_SUPPORT=y', '#CONFIG_NIOS2_HW_DIV_SUPPORT is not set', d)}" >> ${WORKDIR}/defconfig
15 echo "${@base_contains('TUNE_FEATURES', 'fpu-custom', 'CONFIG_NIOS2_FPU_SUPPORT=y', '#CONFIG_NIOS2_FPU_SUPPORT is not set', d)}" >> ${WORKDIR}/defconfig
16 echo "${@base_contains('TUNE_FEATURES', 'fpu-customdiv', 'CONFIG_NIOS2_FPU_SUPPORT=y', '#CONFIG_NIOS2_FPU_SUPPORT is not set', d)}" >> ${WORKDIR}/defconfig
17}