diff --git a/.oebuild/platform/visionfive2.yaml b/.oebuild/platform/visionfive2.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a8dcf48a49124cc61c5ae51d2587371af88536fb --- /dev/null +++ b/.oebuild/platform/visionfive2.yaml @@ -0,0 +1,9 @@ +type: platform + +machine: starfive-dubhe + +toolchain_type: EXTERNAL_TOOLCHAIN_riscv64 + +layers: + - yocto-meta-openeuler/bsp/meta-visionfive2 + diff --git a/bsp/meta-visionfive2/README.md b/bsp/meta-visionfive2/README.md new file mode 100644 index 0000000000000000000000000000000000000000..44ed29a7b4efab4a3ecc87ee7c967f5eb66f2677 --- /dev/null +++ b/bsp/meta-visionfive2/README.md @@ -0,0 +1,92 @@ +# meta-visionfive2 + + + +## Getting started + +To make it easy for you to get started with GitLab, here's a list of recommended next steps. + +Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! + +## Add your files + +- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files +- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command: + +``` +cd existing_repo +git remote add origin https://isrc.iscas.ac.cn/gitlab/riscv/raios/meta-visionfive2.git +git branch -M main +git push -uf origin main +``` + +## Integrate with your tools + +- [ ] [Set up project integrations](https://isrc.iscas.ac.cn/gitlab/riscv/raios/meta-visionfive2/-/settings/integrations) + +## Collaborate with your team + +- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) +- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) +- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) +- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) +- [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html) + +## Test and Deploy + +Use the built-in continuous integration in GitLab. + +- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html) +- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) +- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) +- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) +- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) + +*** + +# Editing this README + +When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template. + +## Suggestions for a good README +Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. + +## Name +Choose a self-explaining name for your project. + +## Description +Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. + +## Badges +On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. + +## Visuals +Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. + +## Installation +Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. + +## Usage +Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README. + +## Support +Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc. + +## Roadmap +If you have ideas for releases in the future, it is a good idea to list them in the README. + +## Contributing +State if you are open to contributions and what your requirements are for accepting them. + +For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. + +You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. + +## Authors and acknowledgment +Show your appreciation to those who have contributed to the project. + +## License +For open source projects, say how it is licensed. + +## Project status +If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers. diff --git a/bsp/meta-visionfive2/conf/layer.conf b/bsp/meta-visionfive2/conf/layer.conf new file mode 100644 index 0000000000000000000000000000000000000000..a88ef1adbc5025e55e86b4343f6e1250aeb7ee7f --- /dev/null +++ b/bsp/meta-visionfive2/conf/layer.conf @@ -0,0 +1,18 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH =. "${LAYERDIR}:" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "meta-visionfive2" +BBFILE_PATTERN_meta-visionfive2 = "^${LAYERDIR}/" +BBFILE_PRIORITY_meta-visionfive2 = "7" + +# This should only be incremented on significant changes that will +# cause compatibility issues with other layers +LAYERVERSION_meta-visionfive2 = "1" + +LAYERDEPENDS_meta-visionfive2 = "core" + +LAYERSERIES_COMPAT_meta-visionfive2 = "honister hardknott" diff --git a/bsp/meta-visionfive2/conf/machine/starfive-dubhe.conf b/bsp/meta-visionfive2/conf/machine/starfive-dubhe.conf new file mode 100755 index 0000000000000000000000000000000000000000..ff20e9e6019a1a43a292ac4e90234c47b75328e6 --- /dev/null +++ b/bsp/meta-visionfive2/conf/machine/starfive-dubhe.conf @@ -0,0 +1,73 @@ +#@TYPE: Machine +#@NAME: unmatched +#@SOC: Freedom U740 +#@DESCRIPTION: Machine configuration for the Unmatched development board +require conf/machine/include/riscv/tune-riscv.inc + +MACHINEOVERRIDES =. "visionfive:mriscv64:" +MACHINE_FEATURES = "screen keyboard ext2 ext3 serial alsa pci usbhost" +DEFAULTTUNE ?= "riscv64" + +export ROOTFS_PACKAGE_ARCH = "riscv64" + +KERNEL_IMAGETYPE = "Image.gz" +KERNEL_IMAGETYPE_FOR_MAKE = "Image.gz" + +BASE_LIB_tune-riscv64 = "lib64/lp64d" + +require conf/multilib.conf +MULTILIBS = "" + +SERIAL_CONSOLES = "115200;ttyS0" + +RISCV_SBI_FDT ?= "jh7110-visionfive-v2.dtb" +KERNEL_DEVICETREE ?= "starfive/${RISCV_SBI_FDT}" + +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" +PREFERRED_PROVIDER_virtual/kernel = "linux-starfive" + +RISCV_SBI_PLAT = "generic" + +MACHINE_EXTRA_RRECOMMENDS += " kernel-modules" + +## Do not update fstab file when using wic images +#WIC_CREATE_EXTRA_ARGS ?= "--no-fstab-update" + +EXTRA_IMAGEDEPENDS += "u-boot" +UBOOT_MACHINE = "sifive_unmatched_defconfig" + +# U-Boot SPL +SPL_BINARY ?= "spl/u-boot-spl.bin" + +# U-Boot ITB (FIT image with U-Boot S-mode, OpenSBI FW_DYNAMIC, DTB [from +# U-Boot source code tree]) +UBOOT_SUFFIX ?= "itb" + +## wic default support +WKS_FILE_DEPENDS ?= " \ + opensbi \ + e2fsprogs-native \ + bmap-tools-native \ +" + +IMAGE_BOOT_FILES ?= " \ + Image.gz-initramfs-unmatched.bin \ + jh7110-visionfive-v2.dtb \ + demo-single-2-unmatched.tar \ +" + +WKS_FILE ?= "starfive-dubhe-initramfs.wks" + +BAD_RECOMMENDATIONS += "\ + libcxx-dev \ + libcxx-staticdev \ + compiler-rt-dev \ + compiler-rt-staticdev \ +" + +ASSUME_PROVIDED += "\ + libcxx-dev \ + libcxx-staticdev \ + compiler-rt-dev \ + compiler-rt-staticdev \ +" diff --git a/bsp/meta-visionfive2/recipes-benchmark/coremark/coremark_1.0.bb b/bsp/meta-visionfive2/recipes-benchmark/coremark/coremark_1.0.bb new file mode 100755 index 0000000000000000000000000000000000000000..c4226f1cc9b4832550eb14d0d8642514a675075e --- /dev/null +++ b/bsp/meta-visionfive2/recipes-benchmark/coremark/coremark_1.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "Coremark CPU benchmark" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +BRANCH = "master" +SRC_URI = "git://github.com/sifive/benchmark-coremark.git;protocol=https;branch=${BRANCH} \ + file://0001-Add-Compiler-Flags-and-remove-exe-from-output.patch \ + " +SRCREV = "4486de1f0afe9d6c1fa8dd63743e5751286f3d2f" + +S = "${WORKDIR}/git" + +TARGET_CC_ARCH += "${LDFLAGS}" +EXTRA_OEMAKE += "'CC=${CC}' PORT_DIR=linux64" + +do_compile(){ + oe_runmake compile +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 coremark ${D}${bindir} +} + diff --git a/bsp/meta-visionfive2/recipes-benchmark/coremark/files/0001-Add-Compiler-Flags-and-remove-exe-from-output.patch b/bsp/meta-visionfive2/recipes-benchmark/coremark/files/0001-Add-Compiler-Flags-and-remove-exe-from-output.patch new file mode 100644 index 0000000000000000000000000000000000000000..f046f926e002a5c5b659b04b13feab22b0674b3d --- /dev/null +++ b/bsp/meta-visionfive2/recipes-benchmark/coremark/files/0001-Add-Compiler-Flags-and-remove-exe-from-output.patch @@ -0,0 +1,39 @@ +From d535a7032b73eaa1d5128e571323de724e4eef3a Mon Sep 17 00:00:00 2001 +From: junyuantan +Date: Mon, 16 Aug 2021 17:38:27 +0800 +Subject: [PATCH] Add Compiler Flags and remove exe from output + +This patch is required for adding compiler flags and change output format + +Signed-off-by: Jun Yuan Tan +--- + Makefile | 2 +- + linux64/core_portme.mak | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 51760d1..b90e0ca 100644 +--- a/Makefile ++++ b/Makefile +@@ -60,7 +60,7 @@ CORE_FILES = core_list_join core_main core_matrix core_state core_util + ORIG_SRCS = $(addsuffix .c,$(CORE_FILES)) + SRCS = $(ORIG_SRCS) $(PORT_SRCS) + OBJS = $(addprefix $(OPATH),$(addsuffix $(OEXT),$(CORE_FILES)) $(PORT_OBJS)) +-OUTNAME = coremark$(EXE) ++OUTNAME = coremark + OUTFILE = $(OPATH)$(OUTNAME) + LOUTCMD = $(OFLAG) $(OUTFILE) $(LFLAGS_END) + OUTCMD = $(OUTFLAG) $(OUTFILE) $(LFLAGS_END) +diff --git a/linux64/core_portme.mak b/linux64/core_portme.mak +index 3276f40..b85bd52 100755 +--- a/linux64/core_portme.mak ++++ b/linux64/core_portme.mak +@@ -24,7 +24,7 @@ OUTFLAG= -o + CC = gcc + # Flag: CFLAGS + # Use this flag to define compiler options. Note, you can add compiler options from the command line using XCFLAGS="other flags" +-PORT_CFLAGS = -O2 -fno-common -funroll-loops -finline-functions --param max-inline-insns-auto=20 -falign-functions=4 -falign-jumps=4 -falign-loops=4 --param inline-min-speedup=10 ++PORT_CFLAGS = -mabi=lp64d -O3 -fno-common -funroll-loops -finline-functions -funroll-all-loops -falign-jumps=8 -falign-loops=8 -finline-limit=1000 -falign-functions=8 -ffast-math -fno-tree-loop-distribute-patterns --param fsm-scale-path-stmts=3 -mcmodel=medany -fno-builtin-printf + FLAGS_STR = "$(PORT_CFLAGS) $(XCFLAGS) $(XLFLAGS) $(LFLAGS_END)" + CFLAGS = $(PORT_CFLAGS) -I$(PORT_DIR) -I. -DFLAGS_STR=\"$(FLAGS_STR)\" + #Flag: LFLAGS_END diff --git a/bsp/meta-visionfive2/recipes-benchmark/dhrystone/dhrystone/0001-dhrystone-Edit-compiler-flags.patch b/bsp/meta-visionfive2/recipes-benchmark/dhrystone/dhrystone/0001-dhrystone-Edit-compiler-flags.patch new file mode 100644 index 0000000000000000000000000000000000000000..f77d198a4f55c29b79568aded849822b308891f0 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-benchmark/dhrystone/dhrystone/0001-dhrystone-Edit-compiler-flags.patch @@ -0,0 +1,29 @@ +From f204001c9478facc466400be5089ed8bf1a77ce8 Mon Sep 17 00:00:00 2001 +From: Jun Yuan Tan +Date: Fri, 29 Oct 2021 10:42:16 +0800 +Subject: [PATCH] dhrystone: Edit compiler flags + +This patch is needed for adding compiler flags for Dhrystone + +Signed-off-by: Jun Yuan Tan +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 6fb3e5a..6640037 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,10 +1,10 @@ + DHRY-LFLAGS = + + DHRY-CFLAGS := -O3 -DTIME -DNOENUM -Wno-implicit -save-temps +-DHRY-CFLAGS += -fno-builtin-printf -fno-common -falign-functions=4 ++DHRY-CFLAGS += -mabi=lp64d -O3 -fno-common -funroll-loops -fno-inline -funroll-all-loops -falign-jumps=8 -falign-loops=8 -finline-limit=1000 -falign-functions=8 -ffast-math -fno-tree-loop-distribute-patterns --param fsm-scale-path-stmts=3 -mcmodel=medany -fno-builtin-printf -lrt + + #Uncomment below for FPGA run, default DHRY_ITERS is 2000 for RTL +-#DHRY-CFLAGS += -DDHRY_ITERS=20000000 ++DHRY-CFLAGS += -DDHRY_ITERS=20000000 + + SRC = dhry_1.c dhry_2.c strcmp.S + HDR = dhry.h diff --git a/bsp/meta-visionfive2/recipes-benchmark/dhrystone/dhrystone_2.1.bb b/bsp/meta-visionfive2/recipes-benchmark/dhrystone/dhrystone_2.1.bb new file mode 100755 index 0000000000000000000000000000000000000000..a146e2ffa30ba44dde1947d7d93ffbf718ffde89 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-benchmark/dhrystone/dhrystone_2.1.bb @@ -0,0 +1,24 @@ +SUMMARY = "Dhrystone CPU benchmark" +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/PD;md5=b3597d12946881e13cb3b548d1173851" + +BRANCH = "master" +SRC_URI = "git://github.com/sifive/benchmark-dhrystone.git;protocol=https;branch=${BRANCH} \ + file://0001-dhrystone-Edit-compiler-flags.patch \ + " +SRCREV = "0ddff533cc9052c524990d5ace4560372053314b" + +S = "${WORKDIR}/git" + +TARGET_CC_ARCH += "${LDFLAGS}" +EXTRA_OEMAKE += "'CC=${CC}'" + +do_compile(){ + oe_runmake dhrystone +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 dhrystone ${D}${bindir} +} + diff --git a/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/deploy-bootfiles_0.1.bb b/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/deploy-bootfiles_0.1.bb new file mode 100644 index 0000000000000000000000000000000000000000..e7d11e07605d06d7cfa43eae1a4ec9229e1fdab7 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/deploy-bootfiles_0.1.bb @@ -0,0 +1,21 @@ +SUMMARY = "Deploy Boot files recipe" +DESCRIPTION = "Recipe to deploy boot files to the deploy directory" +LICENSE = "CLOSED" + +LIC_FILES_CHKSUM = "" + +SRC_URI = "file://bootcode.bin \ + file://bootjump.bin \ + file://uEnv.txt \ + " + +S = "${WORKDIR}" + +inherit deploy +do_deploy(){ + install -m 755 ${WORKDIR}/bootcode.bin ${DEPLOYDIR}/ + install -m 755 ${WORKDIR}/bootjump.bin ${DEPLOYDIR}/ + install -m 755 ${WORKDIR}/uEnv.txt ${DEPLOYDIR}/ +} + +addtask deploy before do_build after do_install diff --git a/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/files/bootcode.bin b/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/files/bootcode.bin new file mode 100644 index 0000000000000000000000000000000000000000..c39ccdd315779b1ee832a846821eccd4b0e9d10d Binary files /dev/null and b/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/files/bootcode.bin differ diff --git a/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/files/bootjump.bin b/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/files/bootjump.bin new file mode 100644 index 0000000000000000000000000000000000000000..25830ddd52923e5541c22c7d4f17ed40610ed182 Binary files /dev/null and b/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/files/bootjump.bin differ diff --git a/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/files/uEnv.txt b/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/files/uEnv.txt new file mode 100644 index 0000000000000000000000000000000000000000..cc06df25556dd539e8e6fc208665074a6c97d2c6 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-bsp/deploy-bootfiles/files/uEnv.txt @@ -0,0 +1,10 @@ +kernel_addr_r=0x44000000 +kernel_comp_addr_r=0x90000000 +kernel_comp_size=0x10000000 +fdt_addr_r=0x48000000 +ramdisk_addr_r=0x48100000 +mg_1=fatload mmc 1:2 0x48000000 jh7110.dtb +mg_2=fatload mmc 1:2 0x44000000 image.bin +mg_3=fatload mmc 1:2 0x48100000 fs.cpio.gz +mg_4=booti 0x44000000 0x48100000:addf79d 0x48000000 +boot2=run mg_1; run mg_2; run mg_3; run mg_4; \ No newline at end of file diff --git a/bsp/meta-visionfive2/recipes-bsp/opensbi/opensbi_0.9.bbappend b/bsp/meta-visionfive2/recipes-bsp/opensbi/opensbi_0.9.bbappend new file mode 100644 index 0000000000000000000000000000000000000000..b704214339e689551ca134cce7ea6e52d963aabf --- /dev/null +++ b/bsp/meta-visionfive2/recipes-bsp/opensbi/opensbi_0.9.bbappend @@ -0,0 +1,5 @@ +SRC_URI = "git://github.com/starfive-tech/opensbi.git;protocol=https;branch=starfive-v1.0-dubhe" +SRCREV = "066e15f65ca1e71fecf531d0c7c9b49774d414e9" + +INSANE_SKIP_${PN}-dev = "ldflags" +INSANE_SKIP_${PN} = "ldflags" diff --git a/bsp/meta-visionfive2/recipes-bsp/u-boot/u-boot_%.bbappend b/bsp/meta-visionfive2/recipes-bsp/u-boot/u-boot_%.bbappend new file mode 100644 index 0000000000000000000000000000000000000000..f92645954da66faba61a298700f286640c2b4935 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-bsp/u-boot/u-boot_%.bbappend @@ -0,0 +1,4 @@ +SRCREV = "d80bb749fab53da72c4a0e09b8c2d2aaa3103c91" + +SRC_URI = "git://git.denx.de/u-boot.git;branch=master \ + " diff --git a/bsp/meta-visionfive2/recipes-core/images/openeuler-image-live.bbappend b/bsp/meta-visionfive2/recipes-core/images/openeuler-image-live.bbappend new file mode 100755 index 0000000000000000000000000000000000000000..1be8c53cb7eb0d46aa2d1e92a3034e24c3d935ae --- /dev/null +++ b/bsp/meta-visionfive2/recipes-core/images/openeuler-image-live.bbappend @@ -0,0 +1,40 @@ +# Simple initramfs image. Mostly used for live images. +DESCRIPTION = "Small image capable of booting a device. The kernel includes \ +the Minimal RAM-based Initial Root Filesystem (initramfs), which finds the \ +first 'init' program more efficiently." + +DEPENDS = "coremark dhrystone" + +INITRAMFS_SCRIPTS = "\ + initramfs-boot packagegroup-core-boot \ + " + +PACKAGE_INSTALL = "${INITRAMFS_SCRIPTS} ${VIRTUAL-RUNTIME_base-utils} base-passwd ${ROOTFS_BOOTSTRAP_INSTALL} helloworld coremark dhrystone" +PACKAGE_INSTALL += "sudo base-files curl iptables openssh tar libcgroup docker" + +# Do not pollute the initrd image with rootfs features +IMAGE_FEATURES = "" + +export IMAGE_BASENAME = "openeuler-image-live" +IMAGE_NAME_SUFFIX ?= "" +IMAGE_LINGUAS = "" + +INITRAMFS_IMAGE_BUNDLE = "1" +INITRAMFS_FSTYPES = "cpio.gz" +INITRAMFS_MAXSIZE ="15728640" + +IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" +inherit core-image + +IMAGE_ROOTFS_SIZE = "8192" +IMAGE_ROOTFS_EXTRA_SPACE = "0" +EXTRA_IMAGEDEPENDS ?= "" + +# Use the same restriction as initramfs-module-install +COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|riscv64.*|rv64.*)-(linux.*|freebsd.*)' + +# Override this as the qspi-image will populate the sdk_ext +do_populate_sdk_ext () { +} + + diff --git a/bsp/meta-visionfive2/recipes-core/images/openeuler-image.bbappend b/bsp/meta-visionfive2/recipes-core/images/openeuler-image.bbappend new file mode 100755 index 0000000000000000000000000000000000000000..33fee2f86afbc60a09323351722500716fcdaf92 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-core/images/openeuler-image.bbappend @@ -0,0 +1,15 @@ +DEPENDS = "opensbi deploy-bootfiles" + +IMAGE_FSTYPES = "qspi" + +do_rootfs[depends] = "openeuler-image-live:do_rootfs" +do_image[depends] += " deploy-bootfiles:do_deploy" +do_image[depends] += " opensbi:do_deploy" +do_image[depends] += " virtual/kernel:do_deploy" + +IMAGE_CMD:qspi () { + dd if=${DEPLOY_DIR_IMAGE}/bootcode.bin of=${DEPLOY_DIR_IMAGE}/QSPI-Image.bin bs=32 seek=0 count=128 + dd if=${DEPLOY_DIR_IMAGE}/bootjump.bin of=${DEPLOY_DIR_IMAGE}/QSPI-Image.bin bs=32 seek=128 count=1 + dd if=${DEPLOY_DIR_IMAGE}/jh7110-visionfive-v2.dtb of=${DEPLOY_DIR_IMAGE}/QSPI-Image.bin bs=32 seek=129 count=255 + dd if=${DEPLOY_DIR_IMAGE}/fw_payload.bin of=${DEPLOY_DIR_IMAGE}/QSPI-Image.bin bs=32 seek=384 +} diff --git a/bsp/meta-visionfive2/recipes-core/images/starfive-dubhe.inc b/bsp/meta-visionfive2/recipes-core/images/starfive-dubhe.inc new file mode 100755 index 0000000000000000000000000000000000000000..316d58497c81958dcd08635e3681fc588033f7b1 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-core/images/starfive-dubhe.inc @@ -0,0 +1 @@ +IMAGE_FSTYPES_remove = "iso" diff --git a/bsp/meta-visionfive2/recipes-core/packagegroups/packagegroup-core-boot-live.bbappend b/bsp/meta-visionfive2/recipes-core/packagegroups/packagegroup-core-boot-live.bbappend new file mode 100755 index 0000000000000000000000000000000000000000..1d53030db399cf9e7ed755dda9c96c6f017d6cc0 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-core/packagegroups/packagegroup-core-boot-live.bbappend @@ -0,0 +1,3 @@ +RDEPENDS_${PN}_remove_starfive-dubhe += "kernel-img \ +" + diff --git a/bsp/meta-visionfive2/recipes-core/packagegroups/packagegroup-core-boot.bbappend b/bsp/meta-visionfive2/recipes-core/packagegroups/packagegroup-core-boot.bbappend new file mode 100644 index 0000000000000000000000000000000000000000..aa88334a449b4a7c30fc4a1d0a16f232960fb10b --- /dev/null +++ b/bsp/meta-visionfive2/recipes-core/packagegroups/packagegroup-core-boot.bbappend @@ -0,0 +1 @@ +RDEPENDS_${PN}_remove_starfive-dubhe += "kernel-img" diff --git a/bsp/meta-visionfive2/recipes-extended/docker/docker_0.1.bb b/bsp/meta-visionfive2/recipes-extended/docker/docker_0.1.bb new file mode 100644 index 0000000000000000000000000000000000000000..62161c7d43a0defb72a3b5b4029afb5d55821dbc --- /dev/null +++ b/bsp/meta-visionfive2/recipes-extended/docker/docker_0.1.bb @@ -0,0 +1,27 @@ +SUMMARY = "Docker recipe" +DESCRIPTION = " Deploy docker recipe" +LICENSE = "CLOSED" + +SRC_URI = "file://mount_cgroup.sh \ + file://docker_deploy.sh \ + file://net_config.sh \ + file://daemon.json \ + file://alpine \ + file://docker_pkg_deb \ + " + +do_install() { + + install -d ${D}${datadir}/docker + + install -m 0755 ${WORKDIR}/mount_cgroup.sh ${D}${datadir}/docker/ + install -m 0755 ${WORKDIR}/docker_deploy.sh ${D}${datadir}/docker/ + install -m 0755 ${WORKDIR}/net_config.sh ${D}${datadir}/docker/ + install -m 0755 ${WORKDIR}/daemon.json ${D}${datadir}/docker/ + + cp -rvf ${WORKDIR}/docker_pkg_deb ${D}${datadir}/docker/docker-v20.10.2-dev_riscv64.deb + cp -rvf ${WORKDIR}/alpine ${D}${datadir}/docker/alpine.tar + +} + +FILES:${PN} += " ${datadir}/docker" diff --git a/bsp/meta-visionfive2/recipes-extended/docker/files/alpine b/bsp/meta-visionfive2/recipes-extended/docker/files/alpine new file mode 100644 index 0000000000000000000000000000000000000000..4c6974c190ec671132bd350e53158c5e16c1ce8b Binary files /dev/null and b/bsp/meta-visionfive2/recipes-extended/docker/files/alpine differ diff --git a/bsp/meta-visionfive2/recipes-extended/docker/files/daemon.json b/bsp/meta-visionfive2/recipes-extended/docker/files/daemon.json new file mode 100644 index 0000000000000000000000000000000000000000..ee4a5bb899c1b5732e339dc62c81a005d657acfa --- /dev/null +++ b/bsp/meta-visionfive2/recipes-extended/docker/files/daemon.json @@ -0,0 +1,8 @@ +{ + "experimental": false, + "registry-mirrors": [ + "https://docker.mirrors.ustc.edu.cn" + ], + "debug": true, + "live-restore": true +} diff --git a/bsp/meta-visionfive2/recipes-extended/docker/files/docker_deploy.sh b/bsp/meta-visionfive2/recipes-extended/docker/files/docker_deploy.sh new file mode 100644 index 0000000000000000000000000000000000000000..7f9e5070e26693fd4d7c52a88ecc2506ddedb132 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-extended/docker/files/docker_deploy.sh @@ -0,0 +1,44 @@ + +echo 'docker deploy starting ...' +set -e + +export DOCKER_RAMDISK=true + +if [ ! -d /etc/docker ]; then + mkdir -p /etc/docker +fi + +# docker仓库配置,可手动更改daemon.json,更改后需要重启docker +if [ -e ./daemon.json ]; then + cp -f ./daemon.json /etc/docker/ +fi + +if [! -e ./mount_cgroup.sh ]; then + echo 'mount_cgroup.sh not exist,can not mounting cgroup' + exit 0 +fi + +sh ./mount_cgroup.sh + +if [! -e ./docker-v20.10.2-dev_riscv64.deb ]; then + echo 'docker-v20.10.2-dev_riscv64.deb not exist,stop docker deploy!' + exit 0 +fi + +if [ -d ./docker_pkg ]; then + rm -rf ./docker_pkg +fi + +mkdir ./docker_pkg + +dpkg -x ./docker-v20.10.2-dev_riscv64.deb ./docker_pkg + +cp -f ./docker_pkg/usr/local/bin/* /usr/bin/ +cp -f ./docker_pkg/usr/local/sbin/* /usr/bin/ +cp -f ./docker_pkg/etc/systemd/system/* /etc/systemd/system/ + +echo 'run dockerd...' +/usr/bin/dockerd & + +exit 0 + diff --git a/bsp/meta-visionfive2/recipes-extended/docker/files/docker_pkg_deb b/bsp/meta-visionfive2/recipes-extended/docker/files/docker_pkg_deb new file mode 100644 index 0000000000000000000000000000000000000000..f00d6bc85b9e0cc74467c69ee6a7038eba7a3a7d Binary files /dev/null and b/bsp/meta-visionfive2/recipes-extended/docker/files/docker_pkg_deb differ diff --git a/bsp/meta-visionfive2/recipes-extended/docker/files/mount_cgroup.sh b/bsp/meta-visionfive2/recipes-extended/docker/files/mount_cgroup.sh new file mode 100644 index 0000000000000000000000000000000000000000..6f595fbfdf95f20bc33dd082fc3294094dc5c0b3 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-extended/docker/files/mount_cgroup.sh @@ -0,0 +1,38 @@ +echo 'cgroup mount starting ...' +set -e + +if grep -v '^#' /etc/fstab | grep -q cgroup; then + echo 'cgroups mounted from fstab, not mounting /sys/fs/cgroup' + exit 0 +fi + +# kernel provides cgroups? +if [ ! -e /proc/cgroups ]; then + exit 0 +fi + +# 确保目录存在 +if [ ! -d /sys/fs/cgroup ]; then + exit 0 +fi + +# mount /sys/fs/cgroup if not already done +if ! mountpoint -q /sys/fs/cgroup; then + mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup +fi + +cd /sys/fs/cgroup + +# get/mount list of enabled cgroup controllers +for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do + mkdir -p $sys + if ! mountpoint -q $sys; then + if ! mount -n -t cgroup -o $sys cgroup $sys; then + rmdir $sys || true + fi + fi +done + + +exit 0 + diff --git a/bsp/meta-visionfive2/recipes-extended/docker/files/net_config.sh b/bsp/meta-visionfive2/recipes-extended/docker/files/net_config.sh new file mode 100644 index 0000000000000000000000000000000000000000..e3d600e376d971e96e2588081e56785d74c25377 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-extended/docker/files/net_config.sh @@ -0,0 +1,38 @@ + +echo 'para:net-name ipaddr gatewayip dnsip,for example:eth0 192.168.11.46 192.168.11.1 192.168.11.1' + + +echo 'Net Config Start...' +set -e + +if [ $# -lt 2 ];then + echo "Error, missing arguments!" + exit 1 +fi + +ifconfig $1 $2 + +ifconfig lo 127.0.0.1 +sleep 3 + +if [ ! -e /etc/resolv.conf ]; then + cd /etc/ + mkdir -p ../run/systemd/resolve/ + touch ../run/systemd/resolve/resolv.conf + ln -s ../run/systemd/resolve/resolv.conf /etc/resolv.conf +fi + +sleep 3 + +if [ $# -ge 4 ];then + echo "nameserver $4" >> /etc/resolv.conf +fi + +sleep 3 + +if [ $# -ge 3 ];then + route add default gw $3 +fi + +exit 0 + diff --git a/bsp/meta-visionfive2/recipes-extended/helloworld/files/alpine.tar b/bsp/meta-visionfive2/recipes-extended/helloworld/files/alpine.tar new file mode 100644 index 0000000000000000000000000000000000000000..4c6974c190ec671132bd350e53158c5e16c1ce8b Binary files /dev/null and b/bsp/meta-visionfive2/recipes-extended/helloworld/files/alpine.tar differ diff --git a/bsp/meta-visionfive2/recipes-extended/helloworld/files/docker-v20.10.2-dev_riscv64.tar.gz b/bsp/meta-visionfive2/recipes-extended/helloworld/files/docker-v20.10.2-dev_riscv64.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..32384ca3e030bcaf201f4488076906e2a4166e53 Binary files /dev/null and b/bsp/meta-visionfive2/recipes-extended/helloworld/files/docker-v20.10.2-dev_riscv64.tar.gz differ diff --git a/bsp/meta-visionfive2/recipes-extended/helloworld/files/helloworld.c b/bsp/meta-visionfive2/recipes-extended/helloworld/files/helloworld.c new file mode 100644 index 0000000000000000000000000000000000000000..5b3c1ca30b680596f61bd913b990e98b31288083 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-extended/helloworld/files/helloworld.c @@ -0,0 +1,6 @@ +#include + +int main(){ + printf("Hello World!!!\n"); + return 0; +} diff --git a/bsp/meta-visionfive2/recipes-extended/helloworld/files/mount_cgroup.sh b/bsp/meta-visionfive2/recipes-extended/helloworld/files/mount_cgroup.sh new file mode 100644 index 0000000000000000000000000000000000000000..9372232ec3bade78c3cd34cfa712b56c896ec3f3 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-extended/helloworld/files/mount_cgroup.sh @@ -0,0 +1,36 @@ +set -e + +if grep -v '^#' /etc/fstab | grep -q cgroup; then + echo 'cgroups mounted from fstab, not mounting /sys/fs/cgroup' + exit 0 +fi + +# kernel provides cgroups? +if [ ! -e /proc/cgroups ]; then + exit 0 +fi + +# 确保目录存在 +if [ ! -d /sys/fs/cgroup ]; then + exit 0 +fi + +# mount /sys/fs/cgroup if not already done +if ! mountpoint -q /sys/fs/cgroup; then + mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup +fi + +cd /sys/fs/cgroup + +# get/mount list of enabled cgroup controllers +for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do + mkdir -p $sys + if ! mountpoint -q $sys; then + if ! mount -n -t cgroup -o $sys cgroup $sys; then + rmdir $sys || true + fi + fi +done + + +exit 0 diff --git a/bsp/meta-visionfive2/recipes-extended/helloworld/helloworld_0.1.bb b/bsp/meta-visionfive2/recipes-extended/helloworld/helloworld_0.1.bb new file mode 100644 index 0000000000000000000000000000000000000000..e4ecbc42f5afa60ecf2acbb6a8046fd987464310 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-extended/helloworld/helloworld_0.1.bb @@ -0,0 +1,19 @@ +SUMMARY = "Hello World recipe" +DESCRIPTION = "Sample helloworld recipe" +LICENSE = "CLOSED" + +LIC_FILES_CHKSUM = "" + +SRC_URI = "file://helloworld.c \ + " + +S = "${WORKDIR}" + +do_compile(){ + ${CC} ${CFLAGS} ${LDFLAGS} helloworld.c -o helloworld +} + +do_install(){ + install -d ${D}${bindir} + install -m 0755 helloworld ${D}${bindir} +} diff --git a/bsp/meta-visionfive2/recipes-kernel/linux/files/config/defconfig b/bsp/meta-visionfive2/recipes-kernel/linux/files/config/defconfig new file mode 100755 index 0000000000000000000000000000000000000000..f1ae4573b56ffdf541dd515d9e16f0b7e5a2aeaf --- /dev/null +++ b/bsp/meta-visionfive2/recipes-kernel/linux/files/config/defconfig @@ -0,0 +1,409 @@ +CONFIG_DEFAULT_HOSTNAME="StarFive" +CONFIG_SYSVIPC=y +CONFIG_USELIB=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BPF_SYSCALL=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y +CONFIG_SOC_STARFIVE=y +CONFIG_SOC_STARFIVE_JH7110=y +CONFIG_SMP=y +CONFIG_HZ_100=y +CONFIG_PM=y +CONFIG_PM_DEBUG=y +CONFIG_PM_ADVANCED_DEBUG=y +CONFIG_CPU_IDLE=y +CONFIG_RISCV_SBI_CPUIDLE=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PAGE_REPORTING=y +CONFIG_CMA=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_IPV6 is not set +CONFIG_NETFILTER=y +CONFIG_NETFILTER_NETLINK_ACCT=y +CONFIG_NETFILTER_NETLINK_QUEUE=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_TABLES=y +CONFIG_NFT_CT=y +CONFIG_NFT_COMPAT=y +CONFIG_NETFILTER_XT_MATCH_IPCOMP=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +CONFIG_NETFILTER_XT_MATCH_U32=y +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_DUP_IPV4=y +CONFIG_NFT_FIB_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_NETLINK_DIAG=y +CONFIG_CAN=y +CONFIG_IPMS_CAN=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_H4=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_NET_9P=y +CONFIG_NET_9P_VIRTIO=y +CONFIG_PCI=y +# CONFIG_PCIEASPM is not set +CONFIG_PCIE_PLDA=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_SPI_NOR=y +CONFIG_OF_CONFIGFS=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_NVME=y +CONFIG_EEPROM_AT24=y +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +CONFIG_SCSI_VIRTIO=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y +# CONFIG_NET_VENDOR_ALACRITECH is not set +# CONFIG_NET_VENDOR_AMAZON is not set +# CONFIG_NET_VENDOR_AQUANTIA is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CADENCE is not set +# CONFIG_NET_VENDOR_CAVIUM is not set +# CONFIG_NET_VENDOR_CORTINA is not set +# CONFIG_NET_VENDOR_EZCHIP is not set +# CONFIG_NET_VENDOR_GOOGLE is not set +# CONFIG_NET_VENDOR_HUAWEI is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_MICROSEMI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NETRONOME is not set +# CONFIG_NET_VENDOR_NI is not set +# CONFIG_NET_VENDOR_PENSANDO is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +CONFIG_R8169=y +# CONFIG_NET_VENDOR_RENESAS is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SOLARFLARE is not set +# CONFIG_NET_VENDOR_SOCIONEXT is not set +CONFIG_STMMAC_ETH=y +CONFIG_STMMAC_SELFTESTS=y +CONFIG_DWMAC_DWC_QOS_ETH=y +CONFIG_DWMAC_STARFIVE_PLAT=y +# CONFIG_NET_VENDOR_SYNOPSYS is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +# CONFIG_NET_VENDOR_XILINX is not set +CONFIG_MARVELL_PHY=y +CONFIG_MICREL_PHY=y +CONFIG_MOTORCOMM_PHY=y +CONFIG_IWLWIFI=y +CONFIG_IWLDVM=y +CONFIG_IWLMVM=y +# CONFIG_RTL_CARDS is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=6 +CONFIG_SERIAL_8250_RUNTIME_UARTS=6 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_EARLYCON_RISCV_SBI=y +CONFIG_HVC_RISCV_SBI=y +CONFIG_TTY_PRINTK=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_VIRTIO=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_SPI=y +CONFIG_SPI_CADENCE_QUADSPI=y +CONFIG_SPI_PL022_STARFIVE=y +CONFIG_SPI_SIFIVE=y +CONFIG_SPI_SPIDEV=y +# CONFIG_PTP_1588_CLOCK is not set +CONFIG_PINCTRL=y +CONFIG_PINCTRL_STARFIVE=y +CONFIG_PINCTRL_STARFIVE_JH7110=y +CONFIG_GPIO_SYSFS=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO_RESTART=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_SENSORS_SFCTEMP=y +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_SYSFS=y +CONFIG_STARFIVE_WATCHDOG=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_AXP15060=y +# CONFIG_MEDIA_CEC_SUPPORT is not set +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_STF_VIN=y +CONFIG_VIN_SENSOR_IMX219=y +CONFIG_DRM_PANEL_JADARD_JD9365DA_H3=y +CONFIG_DRM_VERISILICON=y +CONFIG_STARFIVE_INNO_HDMI=y +CONFIG_STARFIVE_DSI=y +CONFIG_DRM_IMG_ROGUE=y +# CONFIG_DRM_IMG_NULLDISP is not set +CONFIG_DRM_LEGACY=y +CONFIG_FB=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=y +CONFIG_SND_SOC=y +CONFIG_SND_DESIGNWARE_I2S=y +CONFIG_SND_DESIGNWARE_I2S_STARFIVE_JH7110=y +CONFIG_SND_SOC_STARFIVE=y +CONFIG_SND_SOC_STARFIVE_PWMDAC=y +CONFIG_SND_SOC_STARFIVE_I2S=y +CONFIG_SND_SOC_AC108=y +CONFIG_SND_SOC_WM8960=y +CONFIG_SND_SIMPLE_CARD=y +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_USB_UAS=y +CONFIG_USB_CDNS_SUPPORT=y +CONFIG_USB_CDNS3=y +CONFIG_USB_CDNS3_GADGET=y +CONFIG_USB_CDNS3_HOST=y +CONFIG_USB_CDNS3_STARFIVE=y +CONFIG_USB_GADGET=y +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_MMC=y +CONFIG_MMC_DEBUG=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF_DWCMSHC=y +CONFIG_MMC_SPI=y +CONFIG_MMC_DW=y +CONFIG_MMC_DW_STARFIVE=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_STARFIVE=y +CONFIG_RTC_DRV_GOLDFISH=y +CONFIG_DMADEVICES=y +CONFIG_DW_AXI_DMAC=y +CONFIG_DMATEST=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VHOST_MENU is not set +CONFIG_GOLDFISH=y +CONFIG_CLK_STARFIVE_JH7110_PLL=y +CONFIG_STARFIVE_TIMER=y +CONFIG_MAILBOX=y +CONFIG_STARFIVE_MBOX=m +CONFIG_STARFIVE_MBOX_TEST=m +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_RPMSG_CHAR=y +CONFIG_RPMSG_VIRTIO=y +CONFIG_SIFIVE_L2_FLUSH_START=0x40000000 +CONFIG_SIFIVE_L2_FLUSH_SIZE=0x400000000 +CONFIG_STARFIVE_PMU=y +CONFIG_PWM=y +CONFIG_PWM_STARFIVE_PTC=y +CONFIG_PHY_M31_DPHY_RX0=y +CONFIG_RAS=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y +CONFIG_CPUFREQ_DT=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_CUSE=y +CONFIG_VIRTIO_FS=y +CONFIG_OVERLAY_FS_INDEX=y +CONFIG_OVERLAY_FS_XINO_AUTO=y +CONFIG_OVERLAY_FS_METACOPY=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_UTF8=y +CONFIG_EXFAT_FS=y +CONFIG_NTFS_FS=y +CONFIG_NTFS_RW=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +CONFIG_JFFS2_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V4=y +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_CRYPTO_USER=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y +CONFIG_CRYPTO_USER_API_RNG=y +CONFIG_CRYPTO_USER_API_AEAD=y +CONFIG_CRYPTO_USER_API_AKCIPHER=y +CONFIG_CRYPTO_DEV_VIRTIO=y +CONFIG_CRYPTO_DEV_JH7110_ENCRYPT=y +CONFIG_DMA_CMA=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_FS=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_WQ_WATCHDOG=y +CONFIG_DEBUG_TIMEKEEPING=y +CONFIG_DEBUG_RT_MUTEXES=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_DEBUG_RWSEMS=y +CONFIG_DEBUG_ATOMIC_SLEEP=y +CONFIG_STACKTRACE=y +CONFIG_DEBUG_LIST=y +CONFIG_DEBUG_PLIST=y +CONFIG_DEBUG_SG=y +# CONFIG_RCU_TRACE is not set +CONFIG_RCU_EQS_DEBUG=y +# CONFIG_FTRACE is not set +# CONFIG_RUNTIME_TESTING_MENU is not set +CONFIG_MEMTEST=y + +CONFIG_NAMESPACES=y +CONFIG_NET_NS=y +CONFIG_PID_NS=y +CONFIG_IPC_NS=y +CONFIG_UTS_NS=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_SCHED=y +CONFIG_CPUSETS=y +CONFIG_MEMCG=y +CONFIG_KEYS=y +CONFIG_VETH=y +CONFIG_BRIDGE=y +CONFIG_BRIDGE_NETFILTER=y +CONFIG_NF_NAT_IPV4=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_IPVS=y +CONFIG_NETFILTER_XT_MARK=y +CONFIG_IP_NF_NAT=y +CONFIG_NF_NAT=y +CONFIG_NF_NAT_NEEDED=y +CONFIG_POSIX_MQUEUE=y +CONFIG_CGROUP_BPF=y + +CONFIG_USER_NS=y +CONFIG_SECCOMP=y +CONFIG_SECCOMP_FILTER=y +CONFIG_CGROUP_PIDS=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_SWAP_ENABLED=y + +CONFIG_BLK_CGROUP=y +CONFIG_BLK_DEV_THROTTLING=y +CONFIG_IOSCHED_CFQ=y +CONFIG_CFQ_GROUP_IOSCHED=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_NET_CLS_CGROUP=y +CONFIG_CGROUP_NET_PRIO=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_VS=y +CONFIG_IP_VS_NFCT=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=y +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_APPARMOR=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_VXLAN=y +CONFIG_BRIDGE_VLAN_FILTERING=y + +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_GCM=y +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_GHASH=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_ALGO=y +CONFIG_INET_ESP=y + +CONFIG_IPVLAN=y + +CONFIG_MACVLAN=y +CONFIG_DUMMY=y + +CONFIG_NF_NAT_FTP=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_NAT_TFTP=y +CONFIG_NF_CONNTRACK_TFTP=y + + +CONFIG_AUFS_FS=y + + +CONFIG_BTRFS_FS=y +CONFIG_BTRFS_FS_POSIX_ACL=y + +CONFIG_BLK_DEV_DM=y +CONFIG_DM_THIN_PROVISIONING=y +CONFIG_OVERLAY_FS=y + diff --git a/bsp/meta-visionfive2/recipes-kernel/linux/linux-mainline-common.inc b/bsp/meta-visionfive2/recipes-kernel/linux/linux-mainline-common.inc new file mode 100755 index 0000000000000000000000000000000000000000..dcc2da7c35f604f66520972032255ff4d592d8cd --- /dev/null +++ b/bsp/meta-visionfive2/recipes-kernel/linux/linux-mainline-common.inc @@ -0,0 +1,24 @@ +DESCRIPTION = "Mainline Linux Kernel" +SECTION = "kernel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +inherit kernel +require recipes-kernel/linux/linux-yocto.inc + +LINUX_VERSION_EXTENSION = "" + +PV = "${LINUX_VERSION}+git${SRCPV}" + +KCONFIG_MODE="--alldefconfig" + +KBUILD_DEFCONFIG:qemuriscv32 = "rv32_defconfig" +KBUILD_DEFCONFIG:qemuriscv64 = "defconfig" +KBUILD_DEFCONFIG:freedom-u540 = "defconfig" + +COMPATIBLE_MACHINE = "(qemuriscv32|qemuriscv64|freedom-u540)" + +KERNEL_DEVICETREE:freedom-u540 = "sifive/${RISCV_SBI_FDT}" + +KERNEL_FEATURES:remove = "features/debug/printk.scc" +KERNEL_FEATURES:remove = "features/kernel-sample/kernel-sample.scc" diff --git a/bsp/meta-visionfive2/recipes-kernel/linux/linux-starfive.bb b/bsp/meta-visionfive2/recipes-kernel/linux/linux-starfive.bb new file mode 100755 index 0000000000000000000000000000000000000000..f0f7f9b49563c6a7d36f3d38ab727c7c99ab1c58 --- /dev/null +++ b/bsp/meta-visionfive2/recipes-kernel/linux/linux-starfive.bb @@ -0,0 +1,26 @@ +require linux-mainline-common.inc +BRANCH = "JH7110_VisionFive2_devel" +SRCREV = "7b7b4eddd8d5ae55f6e0ee09b93e16e23ab4f97b" + +LINUX_VERSION = "5.15" +LINUX_VERSION_EXTENSION:append = "-starlight" + +FILESEXTRAPATHS_append := "${THISDIR}/files/:" + +SRC_URI = "git://github.com/starfive-tech/linux.git;protocol=https;branch=${BRANCH} \ + file://config/defconfig \ + " + +INITRAMFS_IMAGE_BUNDLE = "1" +INITRAMFS_IMAGE = "openeuler-image-live" + +COMPATIBLE_MACHINE = "(starfive-dubhe)" + +KERNEL_VERSION_SANITY_SKIP="1" + +RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" + +pkg_postinst_${KERNEL_PACKAGE_NAME}-base () { + : +} +