diff options
author | Marek Vasut <marex@denx.de> | 2015-11-29 14:31:01 +0100 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2015-12-06 23:18:52 -0800 |
commit | d232376fa7b0bf3f22d57c6c747983d00c67e34d (patch) | |
tree | 8b7cc37d8e5e7da9e1e6b8dbe84656844d841a70 | |
parent | 2354b2d37412c76d147b515a5f1463e3ae6a775f (diff) | |
download | meta-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.conf | 11 | ||||
-rw-r--r-- | conf/machine/include/nios2/feature-nios2-divide.inc | 4 | ||||
-rw-r--r-- | conf/machine/include/nios2/feature-nios2-fpu.inc | 15 | ||||
-rw-r--r-- | conf/machine/include/nios2/feature-nios2-multiply.inc | 10 | ||||
-rw-r--r-- | conf/machine/include/tune-nios2.inc | 20 | ||||
-rw-r--r-- | recipes-kernel/linux/config/generic-nios2/defconfig | 82 | ||||
-rw-r--r-- | recipes-kernel/linux/linux-yocto_4.1.bbappend | 17 |
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 | |||
5 | require conf/machine/include/tune-nios2.inc | ||
6 | |||
7 | TUNE_ARCH = "nios2" | ||
8 | |||
9 | MACHINE_FEATURES = "kernel26 serial" | ||
10 | |||
11 | KERNEL_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 @@ | |||
1 | TUNEVALID[hw-div] = "Enable Nios2 hardware divider." | ||
2 | NIOS2CCARGSDIV = "${@bb.utils.contains("TUNE_FEATURES", "hw-div", "-mhw-div", "" ,d)}" | ||
3 | NIOS2PKGDIV = "${@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 @@ | |||
1 | TARGET_FPU = "fpu-other" | ||
2 | |||
3 | TUNEVALID[fpu-soft] = "Use Nios2 software FPU" | ||
4 | TUNEVALID[fpu-custom] = "Enable Nios2 hardware FPU" | ||
5 | TUNEVALID[fpu-customdiv] = "Enable Nios2 hardware FPU with divider" | ||
6 | |||
7 | # Establish which fpu is configured in TUNE_FEATURES. Soft is the default for gcc. | ||
8 | NIOS2CCARGSFPU_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "fpu-custom", "-mcustom-fpu-cfg=60-1", "", d)}" | ||
9 | NIOS2CCARGSFPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-customdiv", "-mcustom-fpu-cfg=60-2", "${NIOS2CCARGSFPU_BASIC}", d)}" | ||
10 | |||
11 | NIOS2PKGFPU_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "fpu-custom", "-fpu", "", d)}" | ||
12 | NIOS2PKGFPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-customdiv", "-fpudiv", "${NIOS2PKGFPU_BASIC}", d)}" | ||
13 | |||
14 | TUNECONFLICTS[fpu-custom] = "fpu-soft fpu-customdiv" | ||
15 | TUNECONFLICTS[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 @@ | |||
1 | TUNEVALID[hw-mul] = "Enable Nios2 Hardware Multiply" | ||
2 | TUNEVALID[hw-mulx] = "Enable Nios2 Extended Hardware Multiply" | ||
3 | |||
4 | # Establish which Multiply output result size to use | ||
5 | NIOS2CCARGSMUL = "${@bb.utils.contains("TUNE_FEATURES", "hw-mul", "-mhw-mul", "" ,d)}" | ||
6 | NIOS2CCARGSMUL += "${@bb.utils.contains("TUNE_FEATURES", "hw-mulx", "-mhw-mulx", "" ,d)}" | ||
7 | |||
8 | NIOS2PKGMUL_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "hw-mul", "-mul", "" ,d)}" | ||
9 | NIOS2PKGMUL = "${@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 | |||
4 | DEFAULTTUNE ?= "nios2" | ||
5 | |||
6 | TUNE_ARCH = "nios2el" | ||
7 | |||
8 | require conf/machine/include/nios2/feature-nios2-multiply.inc | ||
9 | require conf/machine/include/nios2/feature-nios2-divide.inc | ||
10 | require conf/machine/include/nios2/feature-nios2-fpu.inc | ||
11 | |||
12 | AVAILTUNES += "nios2" | ||
13 | TUNEVALID[nios2] = "nios2" | ||
14 | TUNE_FEATURES_tune-nios2 += "nios2" | ||
15 | |||
16 | TUNE_CCARGS += "-mel ${NIOS2CCARGSDIV} ${NIOS2CCARGSFPU} ${NIOS2CCARGSMUL}" | ||
17 | TUNE_PKGARCH = "nios2${NIOS2PKGMUL}${NIOS2PKGDIV}${NIOS2PKGFPU}" | ||
18 | PACKAGE_EXTRA_ARCHS_tune-nios2 = "${TUNE_PKGARCH}" | ||
19 | |||
20 | CSL_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 @@ | |||
1 | CONFIG_SYSVIPC=y | ||
2 | CONFIG_BSD_PROCESS_ACCT=y | ||
3 | CONFIG_LOG_BUF_SHIFT=14 | ||
4 | CONFIG_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 | ||
12 | CONFIG_EMBEDDED=y | ||
13 | CONFIG_SLAB=y | ||
14 | CONFIG_MODULES=y | ||
15 | CONFIG_MODULE_UNLOAD=y | ||
16 | CONFIG_MEM_BASE=0x10000000 | ||
17 | CONFIG_NIOS2_HW_MUL_SUPPORT=y | ||
18 | CONFIG_NIOS2_HW_DIV_SUPPORT=y | ||
19 | CONFIG_CUSTOM_CACHE_SETTINGS=y | ||
20 | CONFIG_NIOS2_DCACHE_SIZE=0x8000 | ||
21 | CONFIG_NIOS2_ICACHE_SIZE=0x8000 | ||
22 | # CONFIG_CMDLINE_IGNORE_DTB is not set | ||
23 | CONFIG_PASS_CMDLINE=y | ||
24 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | ||
25 | CONFIG_NET=y | ||
26 | CONFIG_PACKET=y | ||
27 | CONFIG_UNIX=y | ||
28 | CONFIG_INET=y | ||
29 | CONFIG_IP_MULTICAST=y | ||
30 | CONFIG_IP_PNP=y | ||
31 | CONFIG_IP_PNP_DHCP=y | ||
32 | CONFIG_IP_PNP_BOOTP=y | ||
33 | CONFIG_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 | ||
40 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
41 | CONFIG_DEVTMPFS=y | ||
42 | CONFIG_DEVTMPFS_MOUNT=y | ||
43 | # CONFIG_FW_LOADER is not set | ||
44 | CONFIG_MTD=y | ||
45 | CONFIG_MTD_CMDLINE_PARTS=y | ||
46 | CONFIG_MTD_BLOCK=y | ||
47 | CONFIG_MTD_CFI=y | ||
48 | CONFIG_MTD_CFI_INTELEXT=y | ||
49 | CONFIG_MTD_CFI_AMDSTD=y | ||
50 | CONFIG_MTD_PHYSMAP_OF=y | ||
51 | CONFIG_BLK_DEV_LOOP=y | ||
52 | CONFIG_NETDEVICES=y | ||
53 | CONFIG_ALTERA_TSE=y | ||
54 | CONFIG_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 | ||
59 | CONFIG_SERIAL_ALTERA_JTAGUART=y | ||
60 | CONFIG_SERIAL_ALTERA_JTAGUART_CONSOLE=y | ||
61 | CONFIG_SERIAL_ALTERA_UART=y | ||
62 | # CONFIG_HW_RANDOM is not set | ||
63 | CONFIG_GPIOLIB=y | ||
64 | CONFIG_GPIO_SYSFS=y | ||
65 | CONFIG_GPIO_ALTERA=y | ||
66 | # CONFIG_HWMON is not set | ||
67 | # CONFIG_USB_SUPPORT is not set | ||
68 | CONFIG_NEW_LEDS=y | ||
69 | CONFIG_LEDS_CLASS=y | ||
70 | CONFIG_LEDS_GPIO=y | ||
71 | CONFIG_LEDS_TRIGGERS=y | ||
72 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | ||
73 | # CONFIG_DNOTIFY is not set | ||
74 | # CONFIG_INOTIFY_USER is not set | ||
75 | CONFIG_JFFS2_FS=y | ||
76 | CONFIG_NFS_FS=y | ||
77 | CONFIG_NFS_V3_ACL=y | ||
78 | CONFIG_ROOT_NFS=y | ||
79 | CONFIG_SUNRPC_DEBUG=y | ||
80 | CONFIG_DEBUG_INFO=y | ||
81 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
82 | CONFIG_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 @@ | |||
1 | FILESEXTRAPATHS_prepend := "${THISDIR}/config:" | ||
2 | |||
3 | COMPATIBLE_MACHINE_generic-nios2 = "generic-nios2" | ||
4 | SRC_URI_append_nios2 = " file://defconfig " | ||
5 | |||
6 | # Force machine Tunings in kernel config | ||
7 | do_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 | } | ||