mirror of
				https://github.com/home-assistant/operating-system.git
				synced 2025-11-04 08:28:31 +00:00 
			
		
		
		
	Compare commits
	
		
			25 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					382a3cc7be | ||
| 
						 | 
					e384a7642e | ||
| 
						 | 
					2f11d70a40 | ||
| 
						 | 
					535b8332f3 | ||
| 
						 | 
					7f02b83271 | ||
| 
						 | 
					f778503596 | ||
| 
						 | 
					64bc2ff1db | ||
| 
						 | 
					f37e9673d3 | ||
| 
						 | 
					e94a875c2e | ||
| 
						 | 
					2f06354c3e | ||
| 
						 | 
					2069ccf24f | ||
| 
						 | 
					3e66591d35 | ||
| 
						 | 
					248ad07b23 | ||
| 
						 | 
					3aac1ae373 | ||
| 
						 | 
					cd0c9032d3 | ||
| 
						 | 
					48c3c8ccdf | ||
| 
						 | 
					20f02d2887 | ||
| 
						 | 
					b9f65295b3 | ||
| 
						 | 
					6afd378bd6 | ||
| 
						 | 
					9c239480b2 | ||
| 
						 | 
					98ac18cbd5 | ||
| 
						 | 
					d7d9e08a61 | ||
| 
						 | 
					29c0f2f729 | ||
| 
						 | 
					fb4d7c5f2f | ||
| 
						 | 
					2e78964517 | 
@@ -3,8 +3,7 @@ buildroot/
 | 
			
		||||
buildroot-external/
 | 
			
		||||
buildroot-patches/
 | 
			
		||||
 | 
			
		||||
# Output/Release directory gets created using build scripts
 | 
			
		||||
output*/
 | 
			
		||||
# Release directory gets created using build scripts
 | 
			
		||||
release/
 | 
			
		||||
 | 
			
		||||
# Ignore hidden directories as well
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										54
									
								
								.github/ISSUE_TEMPLATE.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								.github/ISSUE_TEMPLATE.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
<!-- READ THIS FIRST:
 | 
			
		||||
- If you need additional help with this template please refer to https://www.home-assistant.io/help/reporting_issues/
 | 
			
		||||
- Make sure you are running the latest version before reporting an issue: https://github.com/home-assistant/operating-system/releases
 | 
			
		||||
- Do not report issues for integrations here, please refer to https://github.com/home-assistant/core/issues
 | 
			
		||||
- Do not report issues for Add-Ons here, please refer to
 | 
			
		||||
  Official Add-ons: https://github.com/home-assistant/addons/issues
 | 
			
		||||
  Home Assistant Community Add-ons: https://github.com/hassio-addons/repository
 | 
			
		||||
- This is for bugs only. Feature and enhancement requests should go in our community forum: https://community.home-assistant.io/c/feature-requests
 | 
			
		||||
- Provide as many details as possible. Paste logs, configuration sample and code using blocks with three backticks. Do not delete text from this template!
 | 
			
		||||
- Please add modifications to boot files, e.g. if you are using Raspberry Pi and did modifications in config.txt.
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
**Hardware Environment**
 | 
			
		||||
<!--
 | 
			
		||||
Describe the Home Assistant image you are using and the hardware environment
 | 
			
		||||
-->
 | 
			
		||||
- [ ] Raspberry Pi [1/2/3/4]
 | 
			
		||||
- [ ] ODROID [C2/C4/N2(+)/XU4]
 | 
			
		||||
- [ ] ASUS Tinker [S]
 | 
			
		||||
- [ ] Generic x86-64 (like Intel NUC)
 | 
			
		||||
- [ ] OVA (Open Virtualization Appliance, on Intel NUC or any other hardware, please add the Hypervisor you are using)
 | 
			
		||||
 | 
			
		||||
**Home Assistant OS release:**
 | 
			
		||||
- [ ] Fresh installation of release x.y
 | 
			
		||||
- [ ] Updated from version x.y
 | 
			
		||||
- Additional information (if accessible):
 | 
			
		||||
<!--
 | 
			
		||||
- Home Assistant Frontend -> Configuration -> Info (use the copy button in the System Health block)
 | 
			
		||||
- Or use this command: `ha info`
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
**Supervisor logs:**
 | 
			
		||||
<!--
 | 
			
		||||
- Home Assistant Frontend -> Supervisor -> System (Log Provider Supervisor)
 | 
			
		||||
- Or use this command: ha su logs
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
**Journal logs:**
 | 
			
		||||
<!--
 | 
			
		||||
- Enable SSH on OS level and login, then use `journalctl`
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
**Kernel logs:**
 | 
			
		||||
<!--
 | 
			
		||||
- use this command: dmesg
 | 
			
		||||
- Enable SSH on OS level and login, then use `dmesg`.
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
**Description of problem:**
 | 
			
		||||
<!--
 | 
			
		||||
- Is the problem reproducible?
 | 
			
		||||
- Has this been working before (is this a regression?)
 | 
			
		||||
- Has there been attempt to rule out hardware issues? (different SD card etc.)
 | 
			
		||||
-->
 | 
			
		||||
							
								
								
									
										105
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										105
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,105 +0,0 @@
 | 
			
		||||
name: Bug Report Form
 | 
			
		||||
description: Report an issue related to the Home Assistant Operating System.
 | 
			
		||||
labels: bug
 | 
			
		||||
body:
 | 
			
		||||
  - type: markdown
 | 
			
		||||
    attributes:
 | 
			
		||||
      value: |
 | 
			
		||||
        Make sure to test with the last version of the Operating System before reporting a bug.
 | 
			
		||||
        If the bug appears to be a regression, make sure to check if the bug indeed disappears
 | 
			
		||||
        from the previous version. Use `ha os update --version x.y` command to downgrade.
 | 
			
		||||
  - type: textarea
 | 
			
		||||
    validations:
 | 
			
		||||
      required: true
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: Describe the issue you are experiencing
 | 
			
		||||
      description: Provide a clear and concise description of what the bug is.
 | 
			
		||||
  - type: markdown
 | 
			
		||||
    attributes:
 | 
			
		||||
      value: |
 | 
			
		||||
        ## Environment
 | 
			
		||||
  - type: dropdown
 | 
			
		||||
    validations:
 | 
			
		||||
      required: true
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: What operating system image do you use?
 | 
			
		||||
      options:
 | 
			
		||||
        - generic-x86-64 (Generic UEFI capable x86-64 systems)
 | 
			
		||||
        - khadas-vim3 (Khadas VIM3)
 | 
			
		||||
        - odroid-c2 (Hardkernel ODROID-C2)
 | 
			
		||||
        - odroid-c4 (Hardkernel ODROID-C4)
 | 
			
		||||
        - odroid-n2 (Hardkernel ODROID-N2/N2+)
 | 
			
		||||
        - odroid-xu4 (Hardkernel ODROID-XU4)
 | 
			
		||||
        - ova (for Virtual Machines)
 | 
			
		||||
        - rpi2 (Raspberry Pi 2)
 | 
			
		||||
        - rpi3 (Raspberry Pi 3 32-bit OS)
 | 
			
		||||
        - rpi3-64 (Raspberry Pi 3 64-bit OS)
 | 
			
		||||
        - rpi4  (Raspberry Pi 4/400 32-bit OS)
 | 
			
		||||
        - rpi4-64  (Raspberry Pi 4/400 64-bit OS)
 | 
			
		||||
        - tinker (ASUS Tinker Board/Tinker Board S)
 | 
			
		||||
      description: >
 | 
			
		||||
        Can be found in the [Configuration panel -> Settings -> Info](https://my.home-assistant.io/redirect/info/). It is listed as the `Board` value.
 | 
			
		||||
 | 
			
		||||
        [](https://my.home-assistant.io/redirect/info/)
 | 
			
		||||
  - type: input
 | 
			
		||||
    validations:
 | 
			
		||||
      required: true
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: What version of Home Assistant Operating System is installed?
 | 
			
		||||
      placeholder: "6.6"
 | 
			
		||||
      description: >
 | 
			
		||||
        Can be found in the [Configuration panel -> Settings -> Info](https://my.home-assistant.io/redirect/info/). It is listed as the `Host Operating System` value.
 | 
			
		||||
  - type: dropdown
 | 
			
		||||
    validations:
 | 
			
		||||
      required: true
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: Did you upgrade the Operating System.
 | 
			
		||||
      options:
 | 
			
		||||
        - "Yes"
 | 
			
		||||
        - "No"
 | 
			
		||||
  - type: textarea
 | 
			
		||||
    validations:
 | 
			
		||||
      required: true
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: Steps to reproduce the issue
 | 
			
		||||
      description: |
 | 
			
		||||
        Please tell us exactly how to reproduce your issue.
 | 
			
		||||
        Provide clear and concise step by step instructions and add code snippets if needed.
 | 
			
		||||
      value: |
 | 
			
		||||
        1.
 | 
			
		||||
        2.
 | 
			
		||||
        3.
 | 
			
		||||
        ...
 | 
			
		||||
  - type: textarea
 | 
			
		||||
    validations:
 | 
			
		||||
      required: true
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: Anything in the Supervisor logs that might be useful for us?
 | 
			
		||||
      description: >
 | 
			
		||||
        Supervisor Logs can be found under [Configuration panel -> Add-ons, Backup & Supervisor -> System](https://my.home-assistant.io/redirect/supervisor_logs/), then choose Log Provider `Supervisor`.
 | 
			
		||||
 | 
			
		||||
        [](https://my.home-assistant.io/redirect/supervisor_logs/)
 | 
			
		||||
      render: txt
 | 
			
		||||
  - type: textarea
 | 
			
		||||
    validations:
 | 
			
		||||
      required: true
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: Anything in the Host logs that might be useful for us?
 | 
			
		||||
      description: >
 | 
			
		||||
        Supervisor Logs can be found under [Configuration panel -> Add-ons, Backup & Supervisor -> System](https://my.home-assistant.io/redirect/supervisor_logs/), then choose Log Provider `Host`.
 | 
			
		||||
      render: txt
 | 
			
		||||
  - type: textarea
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: System Health information
 | 
			
		||||
      description: >
 | 
			
		||||
        **Optional** Copy the full System Health in this text area.
 | 
			
		||||
 | 
			
		||||
        Can be found in the [Configuration panel -> Settings -> Info](https://my.home-assistant.io/redirect/info/).
 | 
			
		||||
        Use the copy icon on top right and choose `For GitHub`.
 | 
			
		||||
  - type: textarea
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: Additional information
 | 
			
		||||
      description: >
 | 
			
		||||
        **Optional** If you have any additional information for us, use the field below.
 | 
			
		||||
        Please note, you can attach screenshots or screen recordings here, by
 | 
			
		||||
        dragging and dropping files in the field below.
 | 
			
		||||
							
								
								
									
										21
									
								
								.github/ISSUE_TEMPLATE/config.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								.github/ISSUE_TEMPLATE/config.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,21 +0,0 @@
 | 
			
		||||
blank_issues_enabled: false
 | 
			
		||||
contact_links:
 | 
			
		||||
  - name: Report incorrect or missing information on our documentation
 | 
			
		||||
    url: https://github.com/home-assistant/home-assistant.io/issues
 | 
			
		||||
    about: Our documentation has its own issue tracker. Please report issues with the website there.
 | 
			
		||||
 | 
			
		||||
  - name: Report incorrect or missing information on our developer documentation
 | 
			
		||||
    url: https://github.com/home-assistant/developers.home-assistant.io/issues
 | 
			
		||||
    about: Our developer documentation has its own issue tracker. Please report issues with the website there.
 | 
			
		||||
 | 
			
		||||
  - name: Request a feature for the Operating System
 | 
			
		||||
    url: https://community.home-assistant.io/c/feature-requests
 | 
			
		||||
    about: Request an new feature for the Operating System.
 | 
			
		||||
 | 
			
		||||
  - name: I have a question or need support
 | 
			
		||||
    url: https://www.home-assistant.io/help
 | 
			
		||||
    about: We use GitHub for tracking bugs, check our website for resources on getting help.
 | 
			
		||||
 | 
			
		||||
  - name: I'm unsure where to go?
 | 
			
		||||
    url: https://www.home-assistant.io/join-chat
 | 
			
		||||
    about: If you are unsure where to go, then joining our chat is recommended; Just ask!
 | 
			
		||||
							
								
								
									
										32
									
								
								.github/label-actions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								.github/label-actions.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,32 +0,0 @@
 | 
			
		||||
assume-fixed:
 | 
			
		||||
  comment: >
 | 
			
		||||
    :wave: @{issue-author}, thanks for reporting an issue!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    This issue is assumed to be fixed in the latest stable release. Please
 | 
			
		||||
    reopen in case you can still reproduce the issue with the latest stable
 | 
			
		||||
    release. You can find the latest stable release at
 | 
			
		||||
    https://github.com/home-assistant/operating-system/releases/latest
 | 
			
		||||
  close: true
 | 
			
		||||
 | 
			
		||||
core-issue:
 | 
			
		||||
  comment: >
 | 
			
		||||
    :wave: @{issue-author}, thanks for reporting an issue!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    It looks like this issue is related to Home Assistant Core. Please check
 | 
			
		||||
    the [Home Assistant Core](https://github.com/home-assistant/core/issues)
 | 
			
		||||
    repository, the issue might have been reported already. Open a new issue
 | 
			
		||||
    in that repository if you can't find a matching issue.
 | 
			
		||||
  close: true
 | 
			
		||||
 | 
			
		||||
supervisor-issue:
 | 
			
		||||
  comment: >
 | 
			
		||||
    :wave: @{issue-author}, thanks for reporting an issue!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    It looks like this issue is related to Home Assistant Supervisor. Please
 | 
			
		||||
    check the [Home Assistant Supervisor](https://github.com/home-assistant/supervisor/issues)
 | 
			
		||||
    repository, the issue might have been reported already. Open a new issue
 | 
			
		||||
    in that repository if you can't find a matching issue.
 | 
			
		||||
  close: true
 | 
			
		||||
							
								
								
									
										9
									
								
								.github/release-drafter.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.github/release-drafter.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,3 @@
 | 
			
		||||
name-template: Home Assistant OS $NEXT_MINOR_VERSION
 | 
			
		||||
version-template: "$MAJOR.$MINOR"
 | 
			
		||||
categories:
 | 
			
		||||
  - title: 'Home Assistant Operating System'
 | 
			
		||||
    label: 'os'
 | 
			
		||||
@@ -7,8 +5,6 @@ categories:
 | 
			
		||||
    label: 'build'
 | 
			
		||||
  - title: 'Raspberry Pi'
 | 
			
		||||
    label: 'board/raspberrypi'
 | 
			
		||||
  - title: 'Home Assistant Yellow'
 | 
			
		||||
    label: 'board/yellow'
 | 
			
		||||
  - title: 'Open Virtual Appliance'
 | 
			
		||||
    label: 'board/ova'
 | 
			
		||||
  - title: 'Generic x86-64'
 | 
			
		||||
@@ -17,11 +13,8 @@ categories:
 | 
			
		||||
    label: 'board/odroid'
 | 
			
		||||
  - title: 'ASUS Tinker'
 | 
			
		||||
    label: 'board/tinker'
 | 
			
		||||
  - title: 'Khadas VIM Series'
 | 
			
		||||
    label: 'board/khadas'
 | 
			
		||||
  - title: 'Generic aarch64'
 | 
			
		||||
    label: 'board/generic-aarch64'
 | 
			
		||||
filter-by-commitish: true
 | 
			
		||||
commitish: dev
 | 
			
		||||
template: |
 | 
			
		||||
  ## Changes
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								.github/stale.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								.github/stale.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
# Number of days of inactivity before an issue becomes stale
 | 
			
		||||
daysUntilStale: 60
 | 
			
		||||
# Number of days of inactivity before a stale issue is closed
 | 
			
		||||
daysUntilClose: 7
 | 
			
		||||
# Issues with these labels will never be considered stale
 | 
			
		||||
exemptLabels:
 | 
			
		||||
  - pinned
 | 
			
		||||
  - security
 | 
			
		||||
# Label to use when marking an issue as stale
 | 
			
		||||
staleLabel: wontfix
 | 
			
		||||
# Comment to post when marking an issue as stale. Set to `false` to disable
 | 
			
		||||
markComment: >
 | 
			
		||||
  This issue has been automatically marked as stale because it has not had
 | 
			
		||||
  recent activity. It will be closed if no further activity occurs. Thank you
 | 
			
		||||
  for your contributions.
 | 
			
		||||
# Comment to post when closing a stale issue. Set to `false` to disable
 | 
			
		||||
closeComment: false
 | 
			
		||||
							
								
								
									
										105
									
								
								.github/workflows/dev.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										105
									
								
								.github/workflows/dev.yml
									
									
									
									
										vendored
									
									
								
							@@ -4,18 +4,15 @@ name: Development build
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
  pull_request_target:
 | 
			
		||||
    types: [opened,synchronize,labeled]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  prepare:
 | 
			
		||||
    if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'run-dev-build') }}
 | 
			
		||||
    name: Prepare build
 | 
			
		||||
  version:
 | 
			
		||||
 | 
			
		||||
    name: Generate version
 | 
			
		||||
    runs-on: [ "ubuntu-20.04" ]
 | 
			
		||||
    outputs:
 | 
			
		||||
      version_main: ${{ steps.version_main.outputs.version_main }}
 | 
			
		||||
      version_dev: ${{ steps.version_dev.outputs.version_dev }}${{ steps.version_pr.outputs.version_pr }}
 | 
			
		||||
      matrix: ${{ steps.generate_matrix.outputs.result }}
 | 
			
		||||
      version_dev: ${{ steps.version_dev.outputs.version_dev }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Generate Development build version
 | 
			
		||||
        shell: bash
 | 
			
		||||
@@ -24,14 +21,6 @@ jobs:
 | 
			
		||||
          version_dev="dev$(date --utc +'%Y%m%d')"
 | 
			
		||||
          echo "Development version \"${version_dev}\""
 | 
			
		||||
          echo "::set-output name=version_dev::${version_dev}"
 | 
			
		||||
      - name: Generate Development build version for PR
 | 
			
		||||
        if: ${{ github.event.pull_request }}
 | 
			
		||||
        shell: bash
 | 
			
		||||
        id: version_pr
 | 
			
		||||
        run: |
 | 
			
		||||
          version_pr=$(printf "%05d" ${{ github.event.pull_request.number }})
 | 
			
		||||
          echo "Development build for PR #${{ github.event.pull_request.number }}"
 | 
			
		||||
          echo "::set-output name=version_pr::${version_pr}"
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - name: Get Major/Minor version
 | 
			
		||||
        id: version_main
 | 
			
		||||
@@ -39,50 +28,33 @@ jobs:
 | 
			
		||||
          major=$(cat ${GITHUB_WORKSPACE}/buildroot-external/meta | grep VERSION_MAJOR | cut -d'=' -f2)
 | 
			
		||||
          build=$(cat ${GITHUB_WORKSPACE}/buildroot-external/meta | grep VERSION_BUILD | cut -d'=' -f2)
 | 
			
		||||
          echo "::set-output name=version_main::${major}.${build}"
 | 
			
		||||
      - name: Create build matrix
 | 
			
		||||
        uses: actions/github-script@v4
 | 
			
		||||
        id: generate_matrix
 | 
			
		||||
        with:
 | 
			
		||||
          script: |
 | 
			
		||||
            const boards = require('./.github/workflows/matrix.json')
 | 
			
		||||
 | 
			
		||||
            if (context.eventName == "workflow_dispatch") {
 | 
			
		||||
              console.log("Run full build for all boards")
 | 
			
		||||
              return { "board": boards }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            const labels = context.payload.pull_request.labels.map(l => l.name)
 | 
			
		||||
            const labelsSet = new Set(labels)
 | 
			
		||||
            const buildBoards = boards.filter(b => labelsSet.has(b.label))
 | 
			
		||||
 | 
			
		||||
            return { "board": buildBoards }
 | 
			
		||||
 | 
			
		||||
  build:
 | 
			
		||||
    if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'run-dev-build') }}
 | 
			
		||||
    name: Development build for ${{ matrix.board.id }}
 | 
			
		||||
    environment: "dev_build"
 | 
			
		||||
    needs: prepare
 | 
			
		||||
    name: Release build for ${{ matrix.board.name }}
 | 
			
		||||
    needs: version
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix: ${{ fromJson(needs.prepare.outputs.matrix) }}
 | 
			
		||||
      matrix:
 | 
			
		||||
        board:
 | 
			
		||||
          - {"name": "ova", "output": "ova", "runner": "x86-64-runner"}
 | 
			
		||||
          - {"name": "generic_x86_64", "output": "generic-x86-64", "runner": "x86-64-runner"}
 | 
			
		||||
          - {"name": "odroid_c2", "output": "odroid-c2", "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "odroid_c4", "output": "odroid-c4", "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "odroid_n2", "output": "odroid-n2", "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "odroid_xu4", "output": "odroid-xu4" , "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "rpi", "output": "rpi", "runner": "arm-runner"}
 | 
			
		||||
          - {"name": "rpi0_w", "output": "rpi0-w", "runner": "arm-runner"}
 | 
			
		||||
          - {"name": "rpi2", "output": "rpi2", "runner": "arm-runner"}
 | 
			
		||||
          - {"name": "rpi3", "output": "rpi3", "runner": "arm-runner"}
 | 
			
		||||
          - {"name": "rpi3_64", "output": "rpi3-64", "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "rpi4", "output": "rpi4", "runner": "arm-runner"}
 | 
			
		||||
          - {"name": "rpi4_64", "output": "rpi4-64", "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "tinker", "output": "tinker", "runner": "arm-runner"}
 | 
			
		||||
    runs-on: ${{ matrix.board.runner }}
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Define git reference
 | 
			
		||||
        uses: actions/github-script@v4
 | 
			
		||||
        id: generate_gitref
 | 
			
		||||
        with:
 | 
			
		||||
          script: |
 | 
			
		||||
            if (context.eventName == "workflow_dispatch")
 | 
			
		||||
              return { "ref": context.ref }
 | 
			
		||||
            return { "ref": context.payload.pull_request.head.sha }
 | 
			
		||||
 | 
			
		||||
      - name: Checkout source
 | 
			
		||||
        uses: actions/checkout@v2
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: true
 | 
			
		||||
          persist-credentials: false
 | 
			
		||||
          ref: ${{ fromJSON(steps.generate_gitref.outputs.result).ref }}
 | 
			
		||||
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
 | 
			
		||||
      - name: Build container
 | 
			
		||||
        run: docker build -t haos-builder .
 | 
			
		||||
@@ -102,25 +74,22 @@ jobs:
 | 
			
		||||
          docker run --rm --privileged -v "${GITHUB_WORKSPACE}:/build" \
 | 
			
		||||
            -e BUILDER_UID="${BUILDER_UID}" -e BUILDER_GID="${BUILDER_GID}" \
 | 
			
		||||
            -v "${{ matrix.board.runner }}-build-cache:/cache" \
 | 
			
		||||
            -v "/build/output" \
 | 
			
		||||
            haos-builder make BUILDDIR=/build VERSION_DEV=${{ needs.prepare.outputs.version_dev }} ${{ matrix.board.defconfig }}
 | 
			
		||||
            haos-builder make BUILDDIR=/build VERSION_DEV=${{ needs.version.outputs.version_dev }} ${{ matrix.board.name }}
 | 
			
		||||
 | 
			
		||||
      - name: Upload images
 | 
			
		||||
        uses: burnett01/rsync-deployments@4.1
 | 
			
		||||
        uses: appleboy/scp-action@master
 | 
			
		||||
        with:
 | 
			
		||||
          rsh: -q
 | 
			
		||||
          switches: -aW
 | 
			
		||||
          path: release/
 | 
			
		||||
          remote_path: ${{ secrets.DEV_TARGET_PATH }}/${{ needs.prepare.outputs.version_main }}.${{ needs.prepare.outputs.version_dev }}/
 | 
			
		||||
          remote_host: ${{ secrets.DEV_HOST }}
 | 
			
		||||
          remote_port: ${{ secrets.DEV_PORT }}
 | 
			
		||||
          remote_user: ${{ secrets.DEV_USERNAME }}
 | 
			
		||||
          remote_key: ${{ secrets.DEV_SSH_KEY }}
 | 
			
		||||
          host: ${{ secrets.DEV_HOST }}
 | 
			
		||||
          username: ${{ secrets.DEV_USERNAME }}
 | 
			
		||||
          port: ${{ secrets.DEV_PORT }}
 | 
			
		||||
          key: ${{ secrets.DEV_SCP_KEY }}
 | 
			
		||||
          source: "release/*"
 | 
			
		||||
          target: ${{ secrets.DEV_TARGET_PATH }}/${{ needs.version.outputs.version_main }}.${{ needs.version.outputs.version_dev }}/
 | 
			
		||||
          strip_components: 1
 | 
			
		||||
 | 
			
		||||
  bump_version:
 | 
			
		||||
    name: Bump dev channel version
 | 
			
		||||
    if: ${{ github.event_name == 'workflow_dispatch' }}
 | 
			
		||||
    needs: [ build, prepare ]
 | 
			
		||||
    name: Bump dev version to ${{ needs.version.outputs.version_main }}.${{ needs.version.outputs.version_dev }}
 | 
			
		||||
    needs: [ build, version ]
 | 
			
		||||
    runs-on: [ "ubuntu-20.04" ]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
@@ -131,10 +100,10 @@ jobs:
 | 
			
		||||
        email: ${{ secrets.GIT_EMAIL }}
 | 
			
		||||
        token: ${{ secrets.GIT_TOKEN }}
 | 
			
		||||
 | 
			
		||||
    - name: Bump Home Assistant OS dev channel version to ${{ needs.prepare.outputs.version_main }}.${{ needs.prepare.outputs.version_dev }}
 | 
			
		||||
    - name: Bump Home Assistant OS dev version
 | 
			
		||||
      uses: home-assistant/actions/helpers/version-push@master
 | 
			
		||||
      with:
 | 
			
		||||
        key: "hassos[]"
 | 
			
		||||
        key-description: "Home Assistant OS"
 | 
			
		||||
        version: ${{ needs.prepare.outputs.version_main }}.${{ needs.prepare.outputs.version_dev }}
 | 
			
		||||
        version: ${{ needs.version.outputs.version_main }}.${{ needs.version.outputs.version_dev }}
 | 
			
		||||
        channel: "dev"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								.github/workflows/label-actions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.github/workflows/label-actions.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,17 +0,0 @@
 | 
			
		||||
name: 'Label Actions'
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  issues:
 | 
			
		||||
    types: [labeled, unlabeled]
 | 
			
		||||
 | 
			
		||||
permissions:
 | 
			
		||||
  contents: read
 | 
			
		||||
  issues: write
 | 
			
		||||
  pull-requests: write
 | 
			
		||||
  discussions: write
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  action:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: dessant/label-actions@v2
 | 
			
		||||
							
								
								
									
										92
									
								
								.github/workflows/matrix.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										92
									
								
								.github/workflows/matrix.json
									
									
									
									
										vendored
									
									
								
							@@ -1,92 +0,0 @@
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
    "id": "ova",
 | 
			
		||||
    "defconfig": "ova",
 | 
			
		||||
    "runner": "x86-64-runner",
 | 
			
		||||
    "label": "board/ova"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "generic-x86-64",
 | 
			
		||||
    "defconfig": "generic_x86_64",
 | 
			
		||||
    "runner": "x86-64-runner",
 | 
			
		||||
    "label": "board/generic-x86-64"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "generic-aarch64",
 | 
			
		||||
    "defconfig": "generic_aarch64",
 | 
			
		||||
    "runner": "aarch64-runner",
 | 
			
		||||
    "label": "board/generic-aarch64"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "khadas-vim3",
 | 
			
		||||
    "defconfig": "khadas_vim3",
 | 
			
		||||
    "runner": "aarch64-runner",
 | 
			
		||||
    "label": "board/khadas"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "odroid-c2",
 | 
			
		||||
    "defconfig": "odroid_c2",
 | 
			
		||||
    "runner": "aarch64-runner",
 | 
			
		||||
    "label": "board/odroid"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "odroid-c4",
 | 
			
		||||
    "defconfig": "odroid_c4",
 | 
			
		||||
    "runner": "aarch64-runner",
 | 
			
		||||
    "label": "board/odroid"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "odroid-n2",
 | 
			
		||||
    "defconfig": "odroid_n2",
 | 
			
		||||
    "runner": "aarch64-runner",
 | 
			
		||||
    "label": "board/odroid"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "odroid-xu4",
 | 
			
		||||
    "defconfig": "odroid_xu4",
 | 
			
		||||
    "runner": "aarch64-runner",
 | 
			
		||||
    "label": "board/odroid"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "rpi2",
 | 
			
		||||
    "defconfig": "rpi2",
 | 
			
		||||
    "runner": "arm-runner",
 | 
			
		||||
    "label": "board/raspberrypi"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "rpi3",
 | 
			
		||||
    "defconfig": "rpi3",
 | 
			
		||||
    "runner": "arm-runner",
 | 
			
		||||
    "label": "board/raspberrypi"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "rpi3-64",
 | 
			
		||||
    "defconfig": "rpi3_64",
 | 
			
		||||
    "runner": "aarch64-runner",
 | 
			
		||||
    "label": "board/raspberrypi"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "rpi4",
 | 
			
		||||
    "defconfig": "rpi4",
 | 
			
		||||
    "runner": "arm-runner",
 | 
			
		||||
    "label": "board/raspberrypi"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "rpi4-64",
 | 
			
		||||
    "defconfig": "rpi4_64",
 | 
			
		||||
    "runner": "aarch64-runner",
 | 
			
		||||
    "label": "board/raspberrypi"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "yellow",
 | 
			
		||||
    "defconfig": "yellow",
 | 
			
		||||
    "runner": "aarch64-runner",
 | 
			
		||||
    "label": "board/yellow"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": "tinker",
 | 
			
		||||
    "defconfig": "tinker",
 | 
			
		||||
    "runner": "arm-runner",
 | 
			
		||||
    "label": "board/tinker"
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
							
								
								
									
										14
									
								
								.github/workflows/pr-checks.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/pr-checks.yml
									
									
									
									
										vendored
									
									
								
							@@ -9,20 +9,12 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-20.04
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Check out code
 | 
			
		||||
      uses: actions/checkout@v2
 | 
			
		||||
      with:
 | 
			
		||||
        submodules: true
 | 
			
		||||
 | 
			
		||||
      uses: actions/checkout@v1
 | 
			
		||||
    - name: Check Dockerfile
 | 
			
		||||
      uses: brpaz/hadolint-action@v1.1.0
 | 
			
		||||
      with:
 | 
			
		||||
        dockerfile: Dockerfile
 | 
			
		||||
 | 
			
		||||
    - name: Check shell scripts
 | 
			
		||||
      uses: ludeeus/action-shellcheck@1.1.0
 | 
			
		||||
      uses: ludeeus/action-shellcheck@1.0.0
 | 
			
		||||
      with:
 | 
			
		||||
        ignore: buildroot buildroot-external/package/xe-guest-utilities
 | 
			
		||||
 | 
			
		||||
    - name: Check buildroot-external packages
 | 
			
		||||
      run: |
 | 
			
		||||
        buildroot/utils/check-package --exclude PackageHeader --br2-external buildroot-external/package/*/*
 | 
			
		||||
        ignore: "buildroot"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/release-drafter.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/release-drafter.yml
									
									
									
									
										vendored
									
									
								
							@@ -4,7 +4,7 @@ on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - dev
 | 
			
		||||
      - rel-*
 | 
			
		||||
      - rel-4
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  update_release_draft:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										72
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										72
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							@@ -13,7 +13,6 @@ jobs:
 | 
			
		||||
    outputs:
 | 
			
		||||
      version: ${{ steps.version_check.outputs.version }}
 | 
			
		||||
      version_dev: ${{ steps.version_check.outputs.version_dev }}
 | 
			
		||||
      matrix: ${{ steps.generate_matrix.outputs.result }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - name: Validate version
 | 
			
		||||
@@ -35,26 +34,32 @@ jobs:
 | 
			
		||||
            echo "::set-output name=version::${major}.${build}"
 | 
			
		||||
          fi
 | 
			
		||||
          echo "::set-output name=version_dev::${tag_dev}"
 | 
			
		||||
      - name: Create build matrix
 | 
			
		||||
        uses: actions/github-script@v4
 | 
			
		||||
        id: generate_matrix
 | 
			
		||||
        with:
 | 
			
		||||
          script: |
 | 
			
		||||
            const boards = require('./.github/workflows/matrix.json')
 | 
			
		||||
            return { "board": boards }
 | 
			
		||||
 | 
			
		||||
  build:
 | 
			
		||||
    name: Release build for ${{ matrix.board.id }}
 | 
			
		||||
    name: Release build for ${{ matrix.board.name }}
 | 
			
		||||
    needs: validate_release
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix: ${{ fromJson(needs.validate_release.outputs.matrix) }}
 | 
			
		||||
      matrix:
 | 
			
		||||
        board:
 | 
			
		||||
          - {"name": "ova", "output": "ova", "runner": "x86-64-runner"}
 | 
			
		||||
          - {"name": "generic_x86_64", "output": "generic-x86-64", "runner": "x86-64-runner"}
 | 
			
		||||
          - {"name": "odroid_c2", "output": "odroid-c2", "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "odroid_c4", "output": "odroid-c4", "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "odroid_n2", "output": "odroid-n2", "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "odroid_xu4", "output": "odroid-xu4" , "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "rpi", "output": "rpi", "runner": "arm-runner"}
 | 
			
		||||
          - {"name": "rpi0_w", "output": "rpi0-w", "runner": "arm-runner"}
 | 
			
		||||
          - {"name": "rpi2", "output": "rpi2", "runner": "arm-runner"}
 | 
			
		||||
          - {"name": "rpi3", "output": "rpi3", "runner": "arm-runner"}
 | 
			
		||||
          - {"name": "rpi3_64", "output": "rpi3-64", "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "rpi4", "output": "rpi4", "runner": "arm-runner"}
 | 
			
		||||
          - {"name": "rpi4_64", "output": "rpi4-64", "runner": "aarch64-runner"}
 | 
			
		||||
          - {"name": "tinker", "output": "tinker", "runner": "arm-runner"}
 | 
			
		||||
    runs-on: ${{ matrix.board.runner }}
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
        with:
 | 
			
		||||
          submodules: true
 | 
			
		||||
 | 
			
		||||
      - name: Build container
 | 
			
		||||
        run: docker build -t haos-builder .
 | 
			
		||||
@@ -74,18 +79,17 @@ jobs:
 | 
			
		||||
          docker run --rm --privileged -v "${GITHUB_WORKSPACE}:/build" \
 | 
			
		||||
            -e BUILDER_UID="${BUILDER_UID}" -e BUILDER_GID="${BUILDER_GID}" \
 | 
			
		||||
            -v "${{ matrix.board.runner }}-build-cache:/cache" \
 | 
			
		||||
            -v "/build/output" \
 | 
			
		||||
            haos-builder make BUILDDIR=/build VERSION_DEV=${{ needs.validate_release.outputs.version_dev }} ${{ matrix.board.defconfig }}
 | 
			
		||||
            haos-builder make BUILDDIR=/build VERSION_DEV=${{ needs.validate_release.outputs.version_dev }} ${{ matrix.board.name }}
 | 
			
		||||
 | 
			
		||||
      - name: Upload disk image
 | 
			
		||||
        if: ${{ matrix.board.id != 'ova' }}
 | 
			
		||||
        if: ${{ matrix.board.name != 'ova' }}
 | 
			
		||||
        uses: actions/upload-release-asset@v1
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          upload_url: ${{ github.event.release.upload_url }}
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.img.xz
 | 
			
		||||
          asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.img.xz
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.img.xz
 | 
			
		||||
          asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.img.xz
 | 
			
		||||
          asset_content_type: application/x-xz
 | 
			
		||||
 | 
			
		||||
      - name: Upload rauc update
 | 
			
		||||
@@ -94,63 +98,63 @@ jobs:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          upload_url: ${{ github.event.release.upload_url }}
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.raucb
 | 
			
		||||
          asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.raucb
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.raucb
 | 
			
		||||
          asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.raucb
 | 
			
		||||
          asset_content_type: application/octet-stream
 | 
			
		||||
 | 
			
		||||
      - name: Upload ova image
 | 
			
		||||
        if: ${{ matrix.board.id == 'ova' }}
 | 
			
		||||
        if: ${{ matrix.board.name == 'ova' }}
 | 
			
		||||
        uses: actions/upload-release-asset@v1
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          upload_url: ${{ github.event.release.upload_url }}
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.ova
 | 
			
		||||
          asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.ova
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.ova
 | 
			
		||||
          asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.ova
 | 
			
		||||
          asset_content_type: application/x-tar
 | 
			
		||||
 | 
			
		||||
      - name: Upload qcow2 image
 | 
			
		||||
        if: ${{ matrix.board.id == 'ova' || matrix.board.id == 'generic-aarch64' }}
 | 
			
		||||
        if: ${{ matrix.board.name == 'ova' }}
 | 
			
		||||
        uses: actions/upload-release-asset@v1
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          upload_url: ${{ github.event.release.upload_url }}
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.qcow2.xz
 | 
			
		||||
          asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.qcow2.xz
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.qcow2.xz
 | 
			
		||||
          asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.qcow2.xz
 | 
			
		||||
          asset_content_type: application/x-xz
 | 
			
		||||
 | 
			
		||||
      - name: Upload vdi image
 | 
			
		||||
        if: ${{ matrix.board.id == 'ova' }}
 | 
			
		||||
        if: ${{ matrix.board.name == 'ova' }}
 | 
			
		||||
        uses: actions/upload-release-asset@v1
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          upload_url: ${{ github.event.release.upload_url }}
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vdi.zip
 | 
			
		||||
          asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vdi.zip
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vdi.zip
 | 
			
		||||
          asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vdi.zip
 | 
			
		||||
          asset_content_type: application/zip
 | 
			
		||||
 | 
			
		||||
      - name: Upload vhdx image
 | 
			
		||||
        if: ${{ matrix.board.id == 'ova' }}
 | 
			
		||||
        if: ${{ matrix.board.name == 'ova' }}
 | 
			
		||||
        uses: actions/upload-release-asset@v1
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          upload_url: ${{ github.event.release.upload_url }}
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vhdx.zip
 | 
			
		||||
          asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vhdx.zip
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vhdx.zip
 | 
			
		||||
          asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vhdx.zip
 | 
			
		||||
          asset_content_type: application/zip
 | 
			
		||||
 | 
			
		||||
      - name: Upload vmdk image
 | 
			
		||||
        if: ${{ matrix.board.id == 'ova' || matrix.board.id == 'generic-aarch64' }}
 | 
			
		||||
        if: ${{ matrix.board.name == 'ova' }}
 | 
			
		||||
        uses: actions/upload-release-asset@v1
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          upload_url: ${{ github.event.release.upload_url }}
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vmdk.zip
 | 
			
		||||
          asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vmdk.zip
 | 
			
		||||
          asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vmdk.zip
 | 
			
		||||
          asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vmdk.zip
 | 
			
		||||
          asset_content_type: application/zip
 | 
			
		||||
 | 
			
		||||
  bump_version:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										47
									
								
								.github/workflows/stale.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								.github/workflows/stale.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,47 +0,0 @@
 | 
			
		||||
name: Stale
 | 
			
		||||
 | 
			
		||||
# yamllint disable-line rule:truthy
 | 
			
		||||
on:
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: "0 * * * *"
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  stale:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      # The 90 day stale policy
 | 
			
		||||
      # Used for:
 | 
			
		||||
      # - Issues & PRs
 | 
			
		||||
      # - No PRs marked as no-stale or pinned
 | 
			
		||||
      # - No issues marked as no-stale, help-wanted or pinned
 | 
			
		||||
      - name: 90 days stale issues & PRs policy
 | 
			
		||||
        uses: actions/stale@v4
 | 
			
		||||
        with:
 | 
			
		||||
          repo-token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
          days-before-stale: 90
 | 
			
		||||
          days-before-close: 7
 | 
			
		||||
          operations-per-run: 150
 | 
			
		||||
          remove-stale-when-updated: true
 | 
			
		||||
          stale-issue-label: "stale"
 | 
			
		||||
          exempt-issue-labels: "no-stale,help-wanted,pinned,enhancement"
 | 
			
		||||
          stale-issue-message: >
 | 
			
		||||
            There hasn't been any activity on this issue recently. To keep our
 | 
			
		||||
            backlog manageable we have to clean old issues, as many of them have
 | 
			
		||||
            already been resolved with the latest updates.
 | 
			
		||||
 | 
			
		||||
            Please make sure to update to the latest Home Assistant OS version and
 | 
			
		||||
            check if that solves the issue. Let us know if that works for you by
 | 
			
		||||
            adding a comment 👍
 | 
			
		||||
 | 
			
		||||
            This issue has now been marked as stale and will be closed if no
 | 
			
		||||
            further activity occurs. Thank you for your contributions.
 | 
			
		||||
 | 
			
		||||
          stale-pr-label: "stale"
 | 
			
		||||
          exempt-pr-labels: "no-stale,pinned"
 | 
			
		||||
          stale-pr-message: >
 | 
			
		||||
            There hasn't been any activity on this pull request recently. This
 | 
			
		||||
            pull request has been automatically marked as stale because of that
 | 
			
		||||
            and will be closed if no further activity occurs within 7 days.
 | 
			
		||||
 | 
			
		||||
            Thank you for your contributions.
 | 
			
		||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +1,3 @@
 | 
			
		||||
.DS_Store
 | 
			
		||||
/release
 | 
			
		||||
*.pem
 | 
			
		||||
output*/
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +0,0 @@
 | 
			
		||||
[submodule "buildroot"]
 | 
			
		||||
	path = buildroot
 | 
			
		||||
	url = https://github.com/home-assistant/buildroot.git
 | 
			
		||||
	branch = 2021.02.x-haos
 | 
			
		||||
							
								
								
									
										12
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								Dockerfile
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
FROM debian:bullseye
 | 
			
		||||
FROM debian:buster
 | 
			
		||||
 | 
			
		||||
# Set shell
 | 
			
		||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
 | 
			
		||||
@@ -32,10 +32,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
 | 
			
		||||
        ncurses-dev \
 | 
			
		||||
        patch \
 | 
			
		||||
        perl \
 | 
			
		||||
        python3 \
 | 
			
		||||
        python3-matplotlib \
 | 
			
		||||
        python-is-python3 \
 | 
			
		||||
        graphviz \
 | 
			
		||||
        python \
 | 
			
		||||
        rsync \
 | 
			
		||||
        sudo \
 | 
			
		||||
        unzip \
 | 
			
		||||
@@ -46,11 +43,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
 | 
			
		||||
        vim \
 | 
			
		||||
    && rm -rf /var/lib/apt/lists/*
 | 
			
		||||
 | 
			
		||||
RUN apt-get update && apt-get install -y --no-install-recommends \
 | 
			
		||||
	skopeo \
 | 
			
		||||
	jq \
 | 
			
		||||
    && rm -rf /var/lib/apt/lists/*
 | 
			
		||||
 | 
			
		||||
# Init entry
 | 
			
		||||
COPY scripts/entry.sh /usr/sbin/
 | 
			
		||||
ENTRYPOINT ["/usr/sbin/entry.sh"]
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,12 @@
 | 
			
		||||
# Documentation
 | 
			
		||||
# Developer Documentation
 | 
			
		||||
 | 
			
		||||
## Contents
 | 
			
		||||
 | 
			
		||||
- [Configuration](./configuration.md) - how users can configure HAOS
 | 
			
		||||
- [Getting started](./getting_started_development.md) - the place for developers to begin
 | 
			
		||||
- [Development](./development.md) - more details for developers
 | 
			
		||||
- [Deployment](./deployment.md) - approach to git branching and releases
 | 
			
		||||
- [Configuration](./configuration.md) - how users can configure HassOS
 | 
			
		||||
- [Partition](./partition.md) - partition layout
 | 
			
		||||
- [Network](./network.md) - approach to networking
 | 
			
		||||
- [Bluetooth](./bluetooth.md) - approach to bluetooth
 | 
			
		||||
- [Kernel](./kernel.md) - kernel versions
 | 
			
		||||
 
 | 
			
		||||
@@ -5,27 +5,26 @@
 | 
			
		||||
The following boards/devices are supported:
 | 
			
		||||
 | 
			
		||||
- Raspberry Pi
 | 
			
		||||
  - Pi 4 Model B (1 GB, 2 GB, 4 GB and 8 GB model) 64-bit (recommended)
 | 
			
		||||
  - Pi 4 Model B (1 GB, 2 GB, 4 GB and 8 GB model) 32-bit
 | 
			
		||||
  - Pi 3 Model B and B+ 64-bit (recommended)
 | 
			
		||||
  - Pi 3 Model B and B+ 32-bit
 | 
			
		||||
  - Pi 4 Model B (1 GB, 2 GB and 4 GB model) 32-bit (recommended)
 | 
			
		||||
  - Pi 4 Model B (1 GB, 2 GB and 4 GB model) 64-bit
 | 
			
		||||
  - Pi 3 Model B and B+ 32-bit (recommended)
 | 
			
		||||
  - Pi 3 Model B and B+ 64-bit
 | 
			
		||||
  - Pi 2 (not recommended)
 | 
			
		||||
  - Pi Zero-W (not recommended)
 | 
			
		||||
  - Pi (not recommended)
 | 
			
		||||
- Hardkernel
 | 
			
		||||
  - Odroid-N2
 | 
			
		||||
  - Odroid-N2+
 | 
			
		||||
  - Odroid-C2
 | 
			
		||||
  - Odroid-C4
 | 
			
		||||
  - Odroid-C4 (_experimental_)
 | 
			
		||||
  - Odroid-N2
 | 
			
		||||
  - Odroid-XU4
 | 
			
		||||
- Asus
 | 
			
		||||
  - Tinker Board
 | 
			
		||||
- Generic x86-64 (UEFI, not suited for virtualization)
 | 
			
		||||
  - Intel NUC5CPYH
 | 
			
		||||
  - Intel NUC6CAYH
 | 
			
		||||
  - Intel NUC10I3FNK2
 | 
			
		||||
  - Gigabyte GB-BPCE-3455
 | 
			
		||||
  - Computers supporting x86-64 architecture and UEFI boot should generally work
 | 
			
		||||
  - Computers supporting x64-64 architecture and UEFI boot should generally work
 | 
			
		||||
- Asus
 | 
			
		||||
  - Tinker Board
 | 
			
		||||
- Virtual appliance (x86_64/UEFI):
 | 
			
		||||
  - VMDK
 | 
			
		||||
  - OVA ?
 | 
			
		||||
@@ -40,15 +39,17 @@ Notes:
 | 
			
		||||
 | 
			
		||||
|Board|Build|Config|Docs|
 | 
			
		||||
|-----|----|------|----|
 | 
			
		||||
|Pi4B 64-bit   |`make rpi4_64`       |[rpi4_64](../../buildroot-external/configs/rpi4_64_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Pi4B 32-bit   |`make rpi4`          |[rpi4](../../buildroot-external/configs/rpi4_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Pi3B 64-bit   |`make rpi3_64`       |[rpi3_64](../../buildroot-external/configs/rpi3_64_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Pi3B 32-bit   |`make rpi3`          |[rpi3](../../buildroot-external/configs/rpi3_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Pi2           |`make rpi2`          |[rpi2](../../buildroot-external/configs/rpi2_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Odroid-N2/N2+ |`make odroid_n2`     |[odroid_n2](../../buildroot-external/configs/odroid_n2_defconfig)|[hardkernel](./hardkernel/)|
 | 
			
		||||
|Odroid-C2     |`make odroid_c2`     |[odroid_c2](../../buildroot-external/configs/odroid_c2_defconfig)|[hardkernel](./hardkernel/)|
 | 
			
		||||
|Odroid-C4     |`make odroid_c4`     |[odroid_c4](../../buildroot-external/configs/odroid_c4_defconfig)|[hardkernel](./hardkernel/)|
 | 
			
		||||
|Odroid-XU4    |`make odroid_xu4`    |[odroid_xu4](../../buildroot-external/configs/odroid_xu4_defconfig)|[hardkernel](./hardkernel/)|
 | 
			
		||||
|Tinker Board  |`make tinker`        |[tinker](../../buildroot-external/configs/tinker_defconfig)|[asus](./asus/)|
 | 
			
		||||
|Generic x86-64|`make generic_x86_64`|[generic_x86_64](../../buildroot-external/configs/generic_x86_64_defconfig)|[generic-x86-64](./generic-x86-64/)|
 | 
			
		||||
|OVA           |`make ova`           |[ova](../../buildroot-external/configs/ova_defconfig)|[ova](./ova/)|
 | 
			
		||||
|Pi4B 32-bit    |`make rpi4`           |[rpi4](../../buildroot-external/configs/rpi4_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Pi4B 64-bit    |`make rpi4_64`        |[rpi4_64](../../buildroot-external/configs/rpi4_64_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Pi3B 32-bit    |`make rpi3`           |[rpi3](../../buildroot-external/configs/rpi3_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Pi3B 64-bit    |`make rpi3_64`        |[rpi3_64](../../buildroot-external/configs/rpi3_64_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Pi2            |`make rpi2`           |[rpi2](../../buildroot-external/configs/rpi2_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Pi Zero        |`make rpi0_w`         |[rpi0_w](../../buildroot-external/configs/rpi0_w_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Pi             |`make rpi`            |[rpi](../../buildroot-external/configs/rpi_defconfig)|[raspberrypi](./raspberrypi/)|
 | 
			
		||||
|Odroid-C2      |`make odroid_c2`      |[odroid_c2](../../buildroot-external/configs/odroid_c2_defconfig)|[hardkernel](./hardkernel/)|
 | 
			
		||||
|Odroid-C4      |`make odroid_c4`      |[odroid_c4](../../buildroot-external/configs/odroid_c4_defconfig)|[hardkernel](./hardkernel/)|
 | 
			
		||||
|Odroid-N2      |`make odroid_n2`      |[odroid_n2](../../buildroot-external/configs/odroid_n2_defconfig)|[hardkernel](./hardkernel/)|
 | 
			
		||||
|Odroid-XU4     |`make odroid_xu4`     |[odroid_xu4](../../buildroot-external/configs/odroid_xu4_defconfig)|[hardkernel](./hardkernel/)|
 | 
			
		||||
|Tinker Board   |`make tinker`         |[tinker](../../buildroot-external/configs/tinker_defconfig)|[asus](./asus/)|
 | 
			
		||||
|Generic x86-64 |`make generic_x86_64` |[generic_x86_64](../../buildroot-external/configs/generic_x86_64_defconfig)|[generic-x86-64](./generic-x86-64/)|
 | 
			
		||||
|OVA            |`make ova`            |[ova](../../buildroot-external/configs/ova_defconfig)|[ova](./ova/)|
 | 
			
		||||
 
 | 
			
		||||
@@ -1,36 +0,0 @@
 | 
			
		||||
# Generic aarch64
 | 
			
		||||
 | 
			
		||||
## Supported Hardware
 | 
			
		||||
 | 
			
		||||
This board configuration aims to support most aarch64 systems with UEFI boot
 | 
			
		||||
Hardware it has been tested with is listed below.
 | 
			
		||||
 | 
			
		||||
## Tested Hardware
 | 
			
		||||
 | 
			
		||||
| Device                | Release Date | Support | Config      |
 | 
			
		||||
|-----------------------|--------------|---------|-------------|
 | 
			
		||||
| QEMU                  | QEMU         | yes     | [generic_aarch64](../../../buildroot-external/configs/generic_aarch64_defconfig) |
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Requirements
 | 
			
		||||
 | 
			
		||||
- aarch64 support
 | 
			
		||||
- UEFI boot
 | 
			
		||||
 | 
			
		||||
## Wifi
 | 
			
		||||
 | 
			
		||||
WiFi is untested.
 | 
			
		||||
 | 
			
		||||
## Bluetooth
 | 
			
		||||
 | 
			
		||||
Bluetooth is untested.
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
Make sure secure boot is disabled in the UEFI BIOS settings.
 | 
			
		||||
 | 
			
		||||
Currently there is no shiny installation method. Checklist:
 | 
			
		||||
- Boot PC to live environment using PXE or USB
 | 
			
		||||
- Copy or download the Home Assistant OS image into your live environment
 | 
			
		||||
- unxz the image and dd to the local hard disk
 | 
			
		||||
- Reboot
 | 
			
		||||
@@ -6,8 +6,16 @@
 | 
			
		||||
|---------------------|---------------|-----------------|--------------------|
 | 
			
		||||
| Raspberry Pi B/B+/A+|2012/2014/2014 | not recommended | [rpi](../../../buildroot-external/configs/rpi_defconfig)              |
 | 
			
		||||
| Raspberry Pi 2 B    |2015           | not recommended | [rpi2](../../../buildroot-external/configs/rpi2_defconfig)             |
 | 
			
		||||
| Raspberry Pi Zero   |2015           | not recommended | [rpi](../../../buildroot-external/configs/rpi_defconfig)              |
 | 
			
		||||
| Raspberry Pi Zero W |2017           | not recommended | [rpi0_w](../../../buildroot-external/configs/rpi0_w_defconfig)           |
 | 
			
		||||
| Raspberry Pi 3 B/B+ |2016/2018      | yes             | [rpi3](../../../buildroot-external/configs/rpi3_defconfig) / [rpi3_64](../../../buildroot-external/configs/rpi3_64_defconfig) |
 | 
			
		||||
| Raspberry Pi 4 B    |2019           | yes             | [rpi4](../../../buildroot-external/configs/rpi4_defconfig) / [rpi4_64](../../../buildroot-external/configs/rpi4_64_defconfig) |
 | 
			
		||||
| Raspberry Pi 4 B    |2019           | yes*            | [rpi4](../../../buildroot-external/configs/rpi4_defconfig) / [rpi4_64](../../../buildroot-external/configs/rpi4_64_defconfig) |
 | 
			
		||||
 | 
			
		||||
\*1,2 and 4 GiB versions of the Raspberry Pi 4 B are supported. Support for the 8 GiB version is coming soon is part of #740.
 | 
			
		||||
 | 
			
		||||
## Limitation 64bit
 | 
			
		||||
 | 
			
		||||
The 64bit version is under development by RPi-Team. It work very nice but it could have some impacts. Actual we see that the SDcard access with ext4 are a bit slower than on 32bit.
 | 
			
		||||
 | 
			
		||||
## Serial console
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -23,8 +23,6 @@ hassos-xy.raucb
 | 
			
		||||
- The `timesyncd.conf` file allow you to set different NTP servers. HassOS won't boot without correct working time servers!
 | 
			
		||||
- The `hassos-*.raucb` file is a firmware OTA update which will be installed. These can be found on on the [release][hassos-release] page.
 | 
			
		||||
 | 
			
		||||
Text files that are on USB stick must have Unix (LF) end of line characters. If you create USB stick on Windows machine, be sure to use Notepad++, Visual Studio Code or any other editor, that supports different line endings. In Notepad++ LF EOL can be enabled with setting `Edit -> EOL Conversion -> Unix (LF)`.
 | 
			
		||||
 | 
			
		||||
You can put this USB stick into the device and it will be read on startup and files written to the correct places. You can also trigger this process later over the
 | 
			
		||||
API/UI or by calling `systemctl restart hassos-config` on the host. *The USB Stick just needs to be inserted to the device during this setup process and can be disconnected afterwards.*
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								Documentation/deployment.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Documentation/deployment.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
# Deployment
 | 
			
		||||
 | 
			
		||||
We provide 3 different types of release builds:
 | 
			
		||||
 | 
			
		||||
- development (dev)
 | 
			
		||||
- staging (beta)
 | 
			
		||||
- production (stable)
 | 
			
		||||
 | 
			
		||||
## Versioning
 | 
			
		||||
 | 
			
		||||
The format of version is *MAJOR.BUILD*. Everytime we create a new release with same userland, we bump the build number.
 | 
			
		||||
The development number they will be bump for the stable release version and the development version go to next major number.
 | 
			
		||||
 | 
			
		||||
## Git branch/Tag
 | 
			
		||||
 | 
			
		||||
The branch `dev` ist the actual development branch and from there we never make a release. The `master` branch contains the development version and from there we build a beta release.
 | 
			
		||||
 | 
			
		||||
If we create a new productive/staging release, we create a new branch `rel-{MAJOR}`. They will be used for the whole cycle of this release.
 | 
			
		||||
 | 
			
		||||
## Upload release files
 | 
			
		||||
 | 
			
		||||
We use [ghr](https://github.com/tcnksm/ghr) to upload files to our repository. A binary version is available inside `scripts`.
 | 
			
		||||
							
								
								
									
										60
									
								
								Documentation/development.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								Documentation/development.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
# Development
 | 
			
		||||
 | 
			
		||||
## Boot system
 | 
			
		||||
 | 
			
		||||
`BOOT_SYS`:
 | 
			
		||||
 | 
			
		||||
- efi
 | 
			
		||||
- hybrid
 | 
			
		||||
- mbr
 | 
			
		||||
 | 
			
		||||
HassOS is using GPT. But to use GPT we need own the first 1024 of boot drive. Is that's not possible, you can use MBR for your device. This also work with SPLs.
 | 
			
		||||
 | 
			
		||||
Hybrid and SPL use both a hybrid MBR/GPT table but SPL move the GPT header 8 MB for give space to write SPL and boot images before.
 | 
			
		||||
 | 
			
		||||
`BOOT_SPL`:
 | 
			
		||||
 | 
			
		||||
- true
 | 
			
		||||
- false
 | 
			
		||||
 | 
			
		||||
Enable SPL update handling.
 | 
			
		||||
 | 
			
		||||
`BOOTLOADER`:
 | 
			
		||||
 | 
			
		||||
- U-Boot
 | 
			
		||||
- barebox
 | 
			
		||||
 | 
			
		||||
We support mainly U-Boot but for UEFI systems we can also use [barebox](https://barebox.org/). In the future, we hope to remove barebox with U-Boot also on UEFI.
 | 
			
		||||
 | 
			
		||||
`DISK_SIZE`:
 | 
			
		||||
 | 
			
		||||
Default 2. That is the size of end image in GB.
 | 
			
		||||
 | 
			
		||||
## Supervisor
 | 
			
		||||
 | 
			
		||||
`SUPERVISOR_MACHINE`:
 | 
			
		||||
 | 
			
		||||
- intel-nuc
 | 
			
		||||
- odroid-c2
 | 
			
		||||
- odroid-c4
 | 
			
		||||
- odroid-n2
 | 
			
		||||
- odroid-xu
 | 
			
		||||
- qemuarm
 | 
			
		||||
- qemuarm-64
 | 
			
		||||
- qemux86
 | 
			
		||||
- qemux86-64
 | 
			
		||||
- raspberrypi
 | 
			
		||||
- raspberrypi2
 | 
			
		||||
- raspberrypi3
 | 
			
		||||
- raspberrypi4
 | 
			
		||||
- raspberrypi3-64
 | 
			
		||||
- raspberrypi4-64
 | 
			
		||||
- tinker
 | 
			
		||||
 | 
			
		||||
`SUPERVISOR_ARCH`:
 | 
			
		||||
 | 
			
		||||
- amd64
 | 
			
		||||
- i386
 | 
			
		||||
- armhf
 | 
			
		||||
- armv7
 | 
			
		||||
- aarch64
 | 
			
		||||
							
								
								
									
										101
									
								
								Documentation/getting_started_development.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								Documentation/getting_started_development.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
			
		||||
# Getting started with HassOS development using Docker on GNU/Linux
 | 
			
		||||
 | 
			
		||||
First, install `docker-ce` for your distribution. I'd advise to use your distro's provided packages, since that will make sure permissions et al. are sanely set up for what you are about to run. You're also expected to have your current user properly set up in in your sudoers policy, so that this account may elevate to root and execute arbitrary commands as UID 0 (this is required, since at some point during the build process, a new loopback device-backed filesystem image will be mounted inside a Docker container - which requires a "privileged" container to run, which can only be done as root).
 | 
			
		||||
 | 
			
		||||
Next, make sure the Docker daemon is running:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo systemctl status docker
 | 
			
		||||
● docker.service - Docker Application Container Engine
 | 
			
		||||
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
 | 
			
		||||
   Active: inactive (dead)
 | 
			
		||||
     Docs: https://docs.docker.com
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
My desktop distro doesn't start newly installed services by default, which means I'll have to manually fire up the `docker` service:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo systemctl start docker
 | 
			
		||||
$ sudo systemctl --no-pager status docker -n0
 | 
			
		||||
● docker.service - Docker Application Container Engine
 | 
			
		||||
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
 | 
			
		||||
   Active: active (running) since Wed 2018-10-10 21:08:23 CEST; 25s ago
 | 
			
		||||
     Docs: https://docs.docker.com
 | 
			
		||||
 Main PID: 1531 (dockerd)
 | 
			
		||||
    Tasks: 27 (limit: 4915)
 | 
			
		||||
   Memory: 163.4M
 | 
			
		||||
   CGroup: /system.slice/docker.service
 | 
			
		||||
           ├─1531 /usr/bin/dockerd -H fd://
 | 
			
		||||
           └─1539 docker-containerd --config /var/run/docker/containerd/containerd.toml
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Now, change your working directory to your home-assistant/operating-system repository checkout (please adapt path names as needed), make sure your intended changes to the source tree are applied (and committed, ideally :)), and execute the `enter.sh` helper script:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ cd ~/codebase/operating-system/
 | 
			
		||||
$ sudo scripts/enter.sh
 | 
			
		||||
Sending build context to Docker daemon  30.48MB
 | 
			
		||||
Step 1/6 : FROM ubuntu:18.04
 | 
			
		||||
[...]
 | 
			
		||||
 ---> 4dc25a21556b
 | 
			
		||||
Successfully built 4dc25a21556b
 | 
			
		||||
Successfully tagged hassbuildroot:latest
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Note that the current iteration of `enter.sh` will try to load the **overlayfs** kernel module, which is not strictly required for Docker's operation, as far as I can tell. It's OK if loading that module fails; the shell script will continue executing. If everything works out, you will find yourself in an interactive login shell inside your Docker container/build environment, where you can peek around:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
root@somehashinhex:/build#
 | 
			
		||||
root@somehashinhex:/build# make help
 | 
			
		||||
[...]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The HassOS developers provide a `Makefile` that will build HassOS images for a list of targets. For example run the command below to start building the _ova_ variant, and go make a cup of tea. Or fifteen.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
root@0db6f7079872:/build# make ova
 | 
			
		||||
[...]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
That will result in a single VMDK image file at the very end of the build process. This image file is a compressed block device dump with a proper GPT partition table, prepared to ship into any OVA-compatible hypervisor's innards. For me, the end of the **ova** build steps looks like this:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
[...]
 | 
			
		||||
2097152+0 records out
 | 
			
		||||
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 12.2145 s, 87.9 MB/s
 | 
			
		||||
make: Leaving directory '/build/buildroot'
 | 
			
		||||
make: Entering directory '/build/buildroot'
 | 
			
		||||
rm -rf /build/buildroot/output/target /build/buildroot/output/images /build/buildroot/output/host  \
 | 
			
		||||
	/build/buildroot/output/build /build/buildroot/output/staging \
 | 
			
		||||
	/build/buildroot/output/legal-info /build/buildroot/output/graphs
 | 
			
		||||
make: Leaving directory '/build/buildroot'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The artifacts you just built are placed in the `target/` subdirectory:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
root@fd292c061896:/build# ls -lh release/
 | 
			
		||||
total 141M
 | 
			
		||||
-rw-r--r-- 1 root root 141M Oct 10 20:22 hassos_ova-2.2.vmdk.gz
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
In order to be able to use this image file with the QEMU hypervisor, you'll need to unpack it, and convert it to an image format that QEMU can work with. Conveniently, the HassOS buildenv already provides all the tools we need for this conversion:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
root@fd292c061896:/build# gunzip release/hassos_ova-2.2.qcow2.gz
 | 
			
		||||
root@fd292c061896:/build# ls -lh release/
 | 
			
		||||
total 673M
 | 
			
		||||
-rw-r--r-- 1 root root 337M Oct 10 20:25 hassos_ova-2.2.qcow2
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Now, exit the docker container's environment, and find the build artifacts in the `releases/` directory beneath your repository checkout dir. (The generated files will be owned by _root_; make sure to `chown` them to your user account, if needed.)
 | 
			
		||||
 | 
			
		||||
From there, QEMU can try to boot it. Since the generated image assumes UEFI support in the host/hypervisor, this is slightly more tricky than with "classic"(/legacy) MBR-based images. On the *Debian* host I use to run my QEMU virtual machine on, you'll need to install the **ovmf** package which provides the "UEFI firmware for 64-bit x86 virtual machines". That package will install a **TianoCore**-derived QEMU UEFI image build at `/usr/share/OVMF/OVMF_CODE.fd`, which we'll use with QEMU to boot the generated qcow2 image. (Please adapt path names as necessary, for example if you have installed the ovmf firmware image at another location.)
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ /usr/bin/qemu-system-x86_64 -enable-kvm -name hassos_ova -smp 2 -m 1024 -drive file=release/hassos_ova-2.2.qcow2,index=0,media=disk,if=ide,cache=none,format=qcow2 -drive file=/usr/share/ovmf/x64/OVMF_CODE.fd,if=pflash,format=raw,readonly=on
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This should pop up QEMU's SDL frontend, displaying _hassos_' VT/CLI environment. Specifying additional options and flags to QEMU for network access, keyboard layout et al. are left as an exercise for the reader.
 | 
			
		||||
 | 
			
		||||
After the boot process has finished, you can log in to _hassos_ without a password, providing *root* as the username. From there, executing `login` on the *ha>* shell prompt will yield a root shell in the host OS.
 | 
			
		||||
@@ -1,22 +1,19 @@
 | 
			
		||||
 | 
			
		||||
# Kernel Version
 | 
			
		||||
 | 
			
		||||
Default Kernel tree: 5.15
 | 
			
		||||
Default Kernel tree: 5.10
 | 
			
		||||
 | 
			
		||||
| Board | Version |
 | 
			
		||||
|-------|---------|
 | 
			
		||||
| Open Virtual Appliance | 5.15.45 |
 | 
			
		||||
| Raspberry Pi | 5.15.32 |
 | 
			
		||||
| Raspberry Pi 0-W | 5.15.32 |
 | 
			
		||||
| Raspberry Pi 2 | 5.15.32 |
 | 
			
		||||
| Raspberry Pi 3 | 5.15.32 |
 | 
			
		||||
| Raspberry Pi 4 | 5.15.32 |
 | 
			
		||||
| Home Assistant Yellow | 5.15.32 |
 | 
			
		||||
| Tinker Board | 5.15.45 |
 | 
			
		||||
| Odroid-C2 | 5.15.45 |
 | 
			
		||||
| Odroid-C4 | 5.15.45 |
 | 
			
		||||
| Odroid-N2 | 5.15.45 |
 | 
			
		||||
| Odroid-XU4 | 5.15.45 |
 | 
			
		||||
| Generic aarch64 | 5.15.45 |
 | 
			
		||||
| Generic x86-64 | 5.15.45 |
 | 
			
		||||
| Khadas VIM3 | 5.15.45 |
 | 
			
		||||
| Open Virtual Appliance | 5.10.53 |
 | 
			
		||||
| Raspberry Pi | 5.10.17 |
 | 
			
		||||
| Raspberry Pi 0-W | 5.10.17 |
 | 
			
		||||
| Raspberry Pi 2 | 5.10.17 |
 | 
			
		||||
| Raspberry Pi 3 | 5.10.17 |
 | 
			
		||||
| Raspberry Pi 4 | 5.10.17 |
 | 
			
		||||
| Tinker Board | 5.10.53 |
 | 
			
		||||
| Odroid-C2 | 5.10.53 |
 | 
			
		||||
| Odroid-C4 | 5.10.53 |
 | 
			
		||||
| Odroid-N2 | 5.10.53 |
 | 
			
		||||
| Odroid-XU4 | 5.10.53 |
 | 
			
		||||
| Generic x86-64 | 5.10.53 |
 | 
			
		||||
 
 | 
			
		||||
@@ -128,14 +128,6 @@ profile using DHCP, use the following commands on the host console:
 | 
			
		||||
 | 
			
		||||
Home Assistant OS will recreate the default connection profile during boot.
 | 
			
		||||
 | 
			
		||||
### Enabling WiFi
 | 
			
		||||
 | 
			
		||||
WiFi is discouraged for reliability reasons. However if you're still like to use WiFi, you can us the `ha network` command to set up WiFi (example for a Raspberry Pi 4, check `ha network info` to check if your board supports WiFi and the name of the WiFi device):
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
ha network update wlan0 --enabled --ipv4-method auto --wifi-auth wpa-psk --wifi-mode infrastructure --wifi-ssid MY-SSID --wifi-psk MY_PASS
 | 
			
		||||
````
 | 
			
		||||
 | 
			
		||||
### Powersave
 | 
			
		||||
 | 
			
		||||
If you have trouble with powersave then apply the following changes:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										81
									
								
								Documentation/partition.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								Documentation/partition.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,81 @@
 | 
			
		||||
# Partition
 | 
			
		||||
 | 
			
		||||
The partition layout is a bit different than the typical setup. We prefer GPT, if possible. With SoCs which don't support GPT, we use a hybrid GPT. For more details about this topic, please refer to the [development](development.md) documentation.
 | 
			
		||||
 | 
			
		||||
The system is designed to have as few write operations to the storage media as possible. This means that we only write during the OTA updates and 5-6 times per week on the overlay partition. The data partition receives the main I/O operations and for this reason is ideal for placing on a different drive.
 | 
			
		||||
 | 
			
		||||
A visual representation looks like this:
 | 
			
		||||
 | 
			
		||||
```text
 | 
			
		||||
-------------------------
 | 
			
		||||
|       Bootloader      |
 | 
			
		||||
-------------------------
 | 
			
		||||
|       Kernel A        |
 | 
			
		||||
-------------------------
 | 
			
		||||
|       System A        |
 | 
			
		||||
|                       |
 | 
			
		||||
-------------------------
 | 
			
		||||
|       Kernel B        |
 | 
			
		||||
-------------------------
 | 
			
		||||
|       System B        |
 | 
			
		||||
|                       |
 | 
			
		||||
-------------------------
 | 
			
		||||
|       Bootstate       |
 | 
			
		||||
-------------------------
 | 
			
		||||
|       Overlay         |
 | 
			
		||||
|                       |
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
-------------------------
 | 
			
		||||
|       Data            |
 | 
			
		||||
|                       |
 | 
			
		||||
-------------------------
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Sometime the bootloader part can look different because there can be firmware or SPLs for boot the CPU on the SoC.
 | 
			
		||||
 | 
			
		||||
## Data disk
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
The data partition is the only partition with real I/O. It will be expanded automatically at boot to the full size of the disk.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Using datactl to move the data partition.
 | 
			
		||||
 | 
			
		||||
In a Home Assistant OS installation, the data is stored on the `/mnt/data` partition of the SD card. This is the only read+write partition on the SD drive. Using the `datactl` move command, this partition can be moved off of the SD card onto an externally connected drive, leaving the rest of the read-only system on the SD.
 | 
			
		||||
 | 
			
		||||
The storage capacity of the external drive must be larger than the storage capacity of the existing SD card.
 | 
			
		||||
 | 
			
		||||
The command needs to be run from the host console by either connecting a keyboard and monitor or making use of the [debug ssh access](https://developers.home-assistant.io/docs/operating-system/debugging/) over port 22222. The command will not work from within an SSH add-on container.
 | 
			
		||||
 | 
			
		||||
Log in as `root` to get to the Home Assistant CLI and then enter `login` to continue to the host.
 | 
			
		||||
 | 
			
		||||
Confirm your USB SSD/HD is connected and recognized using `fdisk -l`.
 | 
			
		||||
 | 
			
		||||
With the drive connected, use the following command (replacing sdx with your drive, without a partition number):
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
$ datactl move /dev/sdx
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Enter "yes" to confirm the operation. This will prepare the disk, however, the
 | 
			
		||||
actual move will be running on next reboot. This will make the first boot significantly longer than usual; please be patient. Reboot with the following command:
 | 
			
		||||
```sh
 | 
			
		||||
$ ha host reboot
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Once complete, the external drive
 | 
			
		||||
will contain the data and will need to be plugged in to successfully boot Home
 | 
			
		||||
Assistant.
 | 
			
		||||
 | 
			
		||||
## Check if the move was succesful.
 | 
			
		||||
Within the Home Assistant interface you won't see if the move was succesful. To check this, go to your host console again (as described above) and enter:
 | 
			
		||||
```sh
 | 
			
		||||
$ systemctl status mnt-data.mount
 | 
			
		||||
```
 | 
			
		||||
If the data partition was moved to your USB drive you should see ```sh Active: active (mounted)  ``` in the output. Also, it will show, which drive got mounted as /mnt/data (```sh Where ``` and ```sh what ``` section of the output)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Check Power Supply Rating
 | 
			
		||||
Using an USB attached SSD can draw quite some power. For instance on Raspberry Pi 3 the official Raspberry Pi power supply (PSU) only provides 2.5A which can be too tight. Use a power supply which can at least provide 3.5A. Alternatively use a powered USB hub. Connect the Hub to one of the USB slots of your Raspberry Pi, and connect the SSD to the Hub. The power supply that came with the Hub will power the attached device(s).
 | 
			
		||||
							
								
								
									
										16
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								Makefile
									
									
									
									
									
								
							@@ -12,9 +12,9 @@ TARGETS_CONFIG := $(notdir $(patsubst %_defconfig,%-config,$(wildcard $(DEFCONFI
 | 
			
		||||
 | 
			
		||||
# Set O variable if not already done on the command line
 | 
			
		||||
ifneq ("$(origin O)", "command line")
 | 
			
		||||
O := $(BUILDDIR)/output
 | 
			
		||||
O := $(BUILDROOT)/output
 | 
			
		||||
else
 | 
			
		||||
override O := $(BUILDDIR)/$(O)
 | 
			
		||||
override O := $(BUILDROOT)/$(O)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
.NOTPARALLEL: $(TARGETS) $(TARGETS_CONFIG) all
 | 
			
		||||
@@ -26,28 +26,24 @@ all: $(TARGETS)
 | 
			
		||||
$(RELEASE_DIR):
 | 
			
		||||
	mkdir -p $(RELEASE_DIR)
 | 
			
		||||
 | 
			
		||||
savedefconfig:
 | 
			
		||||
	@echo "config $*"
 | 
			
		||||
	$(MAKE) -C $(BUILDROOT) O=$(O) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) "savedefconfig"
 | 
			
		||||
 | 
			
		||||
$(TARGETS_CONFIG): %-config:
 | 
			
		||||
	@echo "config $*"
 | 
			
		||||
	$(MAKE) -C $(BUILDROOT) O=$(O) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) "$*_defconfig"
 | 
			
		||||
	$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) "$*_defconfig"
 | 
			
		||||
 | 
			
		||||
$(TARGETS): %: $(RELEASE_DIR) %-config
 | 
			
		||||
	@echo "build $@"
 | 
			
		||||
	$(MAKE) -C $(BUILDROOT) O=$(O) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) VERSION_DEV=$(VERSION_DEV)
 | 
			
		||||
	$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) VERSION_DEV=$(VERSION_DEV)
 | 
			
		||||
	cp -f $(O)/images/haos_* $(RELEASE_DIR)/
 | 
			
		||||
 | 
			
		||||
	# Do not clean when building for one target
 | 
			
		||||
ifneq ($(words $(filter $(TARGETS),$(MAKECMDGOALS))), 1)
 | 
			
		||||
	@echo "clean $@"
 | 
			
		||||
	$(MAKE) -C $(BUILDROOT) O=$(O) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) clean
 | 
			
		||||
	$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) clean
 | 
			
		||||
endif
 | 
			
		||||
	@echo "finished $@"
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	$(MAKE) -C $(BUILDROOT) O=$(O) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) clean
 | 
			
		||||
	$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) clean
 | 
			
		||||
 | 
			
		||||
help:
 | 
			
		||||
	@echo "Supported targets: $(TARGETS)"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								README.md
									
									
									
									
									
								
							@@ -1,8 +1,8 @@
 | 
			
		||||
# Home Assistant Operating System
 | 
			
		||||
 | 
			
		||||
Home Assistant Operating System (formerly HassOS) is a Linux based operating system optimized to host [Home Assistant](https://www.home-assistant.io) and its [Add-ons](https://www.home-assistant.io/addons/).
 | 
			
		||||
Home Assistant Operating System (formerly HassOS) is an operating system optimized for hosting [Home Assistant](https://www.home-assistant.io) and its [Add-ons](https://www.home-assistant.io/addons/).
 | 
			
		||||
 | 
			
		||||
Home Assistant Operating System uses Docker as Container engine. It by default deploys the Home Assistant Supervisor as a container. Home Assistant Supervisor in turn uses the Docker container engine to control Home Assistant Core and Add-Ons in separate containers. Home Assistant Operating System is **not** based on a regular Linux distribution like Ubuntu. It is built using [Buildroot](https://buildroot.org/) and it is optimized to run Home Assistant. It targets single board compute (SBC) devices like the Raspberry Pi or ODROID but also supports x86-64 systems with UEFI.
 | 
			
		||||
Home Assistant Operating System uses Docker as Container engine. It by default deploys the Home Assistant Supervisor as a container. Home Assistant Supervisor in turn uses the Docker container engine to control Home Assistant Core and Add-Ons in separate containers. Home Assistant Operating System is **not** based on a regular Linux distribution like Ubuntu. It is built using [buildroot](https://buildroot.org/) and it is optimized for running Home Assistant, especially on single board compute (SBC) devices like the Pi, ODROID, NUC and Tinker Board (see supported hardware below).
 | 
			
		||||
 | 
			
		||||
## Features
 | 
			
		||||
 | 
			
		||||
@@ -10,14 +10,14 @@ Home Assistant Operating System uses Docker as Container engine. It by default d
 | 
			
		||||
- Minimized I/O
 | 
			
		||||
- Over The Air (OTA) updates
 | 
			
		||||
- Offline updates
 | 
			
		||||
- Modular using Docker container engine
 | 
			
		||||
- Modular using Docker
 | 
			
		||||
 | 
			
		||||
## Supported hardware
 | 
			
		||||
 | 
			
		||||
- Raspberry Pi
 | 
			
		||||
- Hardkernel ODROID
 | 
			
		||||
- Intel NUC
 | 
			
		||||
- Asus Tinker Board
 | 
			
		||||
- Generic x86-64 (e.g. Intel NUC)
 | 
			
		||||
- Virtual appliances
 | 
			
		||||
 | 
			
		||||
See the full list and specific models [here](./Documentation/boards/README.md)
 | 
			
		||||
@@ -28,17 +28,11 @@ If you just want to use Home Assistant the official [getting started guide](http
 | 
			
		||||
 | 
			
		||||
If you're interested in finding out more about Home Assistant Operating System and how it works read on...
 | 
			
		||||
 | 
			
		||||
## Development
 | 
			
		||||
 | 
			
		||||
If you don't have experience with embedded systems, Buildroot or the build process for Linux distributions it is recommended to read up on these topics first (e.g. [Bootlin](https://bootlin.com/docs/) has excellent resources).
 | 
			
		||||
 | 
			
		||||
The Home Assistant Operating System documentation can be found on the [Home Assistant Developer Docs website](https://developers.home-assistant.io/docs/operating-system).
 | 
			
		||||
 | 
			
		||||
### Components
 | 
			
		||||
## HassOS components
 | 
			
		||||
 | 
			
		||||
- **Bootloader:**
 | 
			
		||||
  - [Barebox](https://barebox.org/) for devices that support UEFI
 | 
			
		||||
  - [U-Boot](https://www.denx.de/wiki/U-Boot) for devices that don't support UEFI
 | 
			
		||||
  - [Barebox](https://barebox.org/) for devices that support EFI
 | 
			
		||||
  - [U-Boot](https://www.denx.de/wiki/U-Boot) for devices that don't support EFI
 | 
			
		||||
- **Operating System:**
 | 
			
		||||
  - [Buildroot](https://buildroot.org/) LTS Linux
 | 
			
		||||
- **File Systems:**
 | 
			
		||||
@@ -51,6 +45,12 @@ The Home Assistant Operating System documentation can be found on the [Home Assi
 | 
			
		||||
- **Security:**
 | 
			
		||||
  - [AppArmor](https://apparmor.net/) Linux kernel security module
 | 
			
		||||
 | 
			
		||||
If you don't have experience with these, embedded systems, buildroot or the build process for Linux distributions, then please read up on these topics. The rest of the documentation in this project is for developers and assumes you have experience with embedded systems or a strong understanding of the internal workings of operating systems.
 | 
			
		||||
 | 
			
		||||
## Developer Documentation
 | 
			
		||||
 | 
			
		||||
All developer documentation is in the [Documentation](./Documentation) directory.
 | 
			
		||||
 | 
			
		||||
### Development builds
 | 
			
		||||
 | 
			
		||||
The Development build GitHub Action Workflow is a manually triggered workflow
 | 
			
		||||
 
 | 
			
		||||
 Submodule buildroot deleted from 7995541510
									
								
							@@ -1,17 +1,13 @@
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/bluetooth-rtl8723/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/eq3_char_loop/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/gasket/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/generic_raw_uart/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/hardkernel-boot/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/hassio/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/khadas-boot/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/os-agent/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/pi-bluetooth/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/bluetooth-bcm43xx/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/bluetooth-rtl8723/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/hardkernel-boot/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/qemu-guest-agent/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/intel-e1000e/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/rpi-eeprom/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/rpi-rf-mod/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/rtl88x2bu/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/rtl8821cu/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/tempio/Config.in.host"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/rtl8812au/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/os-agent/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/udisks2/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/xe-guest-utilities/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/eq3_char_loop/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/generic_raw_uart/Config.in"
 | 
			
		||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/rpi-rf-mod/Config.in"
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
console=tty1 console=ttyS0
 | 
			
		||||
@@ -1,59 +0,0 @@
 | 
			
		||||
set default=99
 | 
			
		||||
set timeout=1
 | 
			
		||||
 | 
			
		||||
set ORDER="A B"
 | 
			
		||||
set A_OK=0
 | 
			
		||||
set B_OK=0
 | 
			
		||||
set A_TRY=0
 | 
			
		||||
set B_TRY=0
 | 
			
		||||
set MACHINE_ID=""
 | 
			
		||||
load_env
 | 
			
		||||
 | 
			
		||||
# select bootable slot
 | 
			
		||||
for SLOT in $ORDER; do
 | 
			
		||||
    if [ "$SLOT" == "A" ]; then
 | 
			
		||||
        INDEX=0
 | 
			
		||||
        OK=$A_OK
 | 
			
		||||
        TRY=$A_TRY
 | 
			
		||||
        A_TRY=1
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "$SLOT" == "B" ]; then
 | 
			
		||||
        INDEX=1
 | 
			
		||||
        OK=$B_OK
 | 
			
		||||
        TRY=$B_TRY
 | 
			
		||||
        B_TRY=1
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "$OK" -eq 1 -a "$TRY" -eq 0 ]; then
 | 
			
		||||
        default=$INDEX
 | 
			
		||||
        break
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# reset booted flags
 | 
			
		||||
if [ "$default" -eq 99 ]; then
 | 
			
		||||
    if [ "$A_OK" -eq 1 -a "$A_TRY" -eq 1 ]; then
 | 
			
		||||
        A_TRY=0
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "$B_OK" -eq 1 -a "$B_TRY" -eq 1 ]; then
 | 
			
		||||
        B_TRY=0
 | 
			
		||||
    fi
 | 
			
		||||
    default=0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
save_env A_TRY A_OK B_TRY B_OK ORDER MACHINE_ID
 | 
			
		||||
 | 
			
		||||
default_cmdline="rootwait zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor systemd.machine_id=$MACHINE_ID cgroup_enable=memory fsck.repair=yes"
 | 
			
		||||
file_env -f ($root)/cmdline.txt cmdline
 | 
			
		||||
 | 
			
		||||
# root is a full HDD/partition definition in GRUB format like hd0,gpt1
 | 
			
		||||
# We extract the part before the comma to then append our own partition index
 | 
			
		||||
# at the end. This is hacky but the best way I found
 | 
			
		||||
regexp --set 1:boothd (.+),.+ ${root}
 | 
			
		||||
 | 
			
		||||
menuentry "Slot A (OK=$A_OK TRY=$A_TRY)" {
 | 
			
		||||
    linux (${boothd},gpt2)/Image root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd $default_cmdline $cmdline rauc.slot=A
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
menuentry "Slot B (OK=$B_OK TRY=$B_TRY)" {
 | 
			
		||||
    linux (${boothd},gpt4)/Image root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 $default_cmdline $cmdline rauc.slot=B
 | 
			
		||||
}
 | 
			
		||||
@@ -1,27 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# shellcheck disable=SC2155
 | 
			
		||||
 | 
			
		||||
function hassos_pre_image() {
 | 
			
		||||
    local BOOT_DATA="$(path_boot_dir)"
 | 
			
		||||
    local EFIPART_DATA="${BINARIES_DIR}/efi-part"
 | 
			
		||||
 | 
			
		||||
    mkdir -p "${BOOT_DATA}/EFI/BOOT"
 | 
			
		||||
 | 
			
		||||
    cp "${BOARD_DIR}/grub.cfg" "${EFIPART_DATA}/EFI/BOOT/grub.cfg"
 | 
			
		||||
    cp "${BOARD_DIR}/cmdline.txt" "${EFIPART_DATA}/cmdline.txt"
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" create
 | 
			
		||||
 | 
			
		||||
    cp -r "${EFIPART_DATA}/"* "${BOOT_DATA}/"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function hassos_post_image() {
 | 
			
		||||
    convert_disk_image_virtual vmdk
 | 
			
		||||
    convert_disk_image_virtual qcow2
 | 
			
		||||
 | 
			
		||||
    convert_disk_image_zip vmdk
 | 
			
		||||
    convert_disk_image_xz qcow2
 | 
			
		||||
 | 
			
		||||
    convert_disk_image_xz
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -1,20 +0,0 @@
 | 
			
		||||
CONFIG_EFI_STUB=y
 | 
			
		||||
 | 
			
		||||
CONFIG_VIRTIO=y
 | 
			
		||||
CONFIG_VIRTIO_PCI=y
 | 
			
		||||
CONFIG_VIRTIO_NET=y
 | 
			
		||||
CONFIG_VIRTIO_BALLOON=m
 | 
			
		||||
CONFIG_VIRTIO_INPUT=m
 | 
			
		||||
CONFIG_VIRTIO_BLK=y
 | 
			
		||||
CONFIG_VIRTIO_BLK_SCSI=y
 | 
			
		||||
CONFIG_VIRTIO_CONSOLE=m
 | 
			
		||||
CONFIG_VIRTIO_VSOCKETS=m
 | 
			
		||||
CONFIG_VIRTIO_MMIO=y
 | 
			
		||||
CONFIG_SCSI_VIRTIO=y
 | 
			
		||||
CONFIG_HW_RANDOM_VIRTIO=y
 | 
			
		||||
 | 
			
		||||
CONFIG_NVME_CORE=y
 | 
			
		||||
CONFIG_BLK_DEV_NVME=y
 | 
			
		||||
CONFIG_NVME_HWMON=y
 | 
			
		||||
 | 
			
		||||
CONFIG_DRM_VIRTIO_GPU=m
 | 
			
		||||
@@ -1,10 +0,0 @@
 | 
			
		||||
BOARD_ID=generic-aarch64
 | 
			
		||||
BOARD_NAME="Generic aarch64"
 | 
			
		||||
CHASSIS=embedded
 | 
			
		||||
BOOTLOADER=grub
 | 
			
		||||
KERNEL_FILE=Image
 | 
			
		||||
BOOT_SYS=efi
 | 
			
		||||
BOOT_SPL=false
 | 
			
		||||
DISK_SIZE=6
 | 
			
		||||
SUPERVISOR_MACHINE=qemuarm-64
 | 
			
		||||
SUPERVISOR_ARCH=aarch64
 | 
			
		||||
@@ -1517,7 +1517,7 @@ CONFIG_BT_HCIBTUSB=y
 | 
			
		||||
CONFIG_BT_HCIBTUSB_BCM=y
 | 
			
		||||
CONFIG_BT_HCIBTUSB_RTL=y
 | 
			
		||||
CONFIG_BT_HCIBTSDIO=y
 | 
			
		||||
CONFIG_BT_HCIUART=m
 | 
			
		||||
CONFIG_BT_HCIUART=y
 | 
			
		||||
CONFIG_BT_HCIUART_SERDEV=y
 | 
			
		||||
CONFIG_BT_HCIUART_H4=y
 | 
			
		||||
# CONFIG_BT_HCIUART_NOKIA is not set
 | 
			
		||||
@@ -1527,7 +1527,6 @@ CONFIG_BT_HCIUART_ATH3K=y
 | 
			
		||||
CONFIG_BT_HCIUART_3WIRE=y
 | 
			
		||||
# CONFIG_BT_HCIUART_INTEL is not set
 | 
			
		||||
# CONFIG_BT_HCIUART_BCM is not set
 | 
			
		||||
CONFIG_BT_HCIUART_RTL=y
 | 
			
		||||
# CONFIG_BT_HCIUART_QCA is not set
 | 
			
		||||
# CONFIG_BT_HCIUART_AG6XX is not set
 | 
			
		||||
# CONFIG_BT_HCIUART_MRVL is not set
 | 
			
		||||
@@ -1557,6 +1556,7 @@ CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
 | 
			
		||||
CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
 | 
			
		||||
CONFIG_CFG80211_DEFAULT_PS=y
 | 
			
		||||
CONFIG_CFG80211_DEBUGFS=y
 | 
			
		||||
CONFIG_CFG80211_CRDA_SUPPORT=y
 | 
			
		||||
CONFIG_CFG80211_WEXT=y
 | 
			
		||||
CONFIG_LIB80211=y
 | 
			
		||||
CONFIG_LIB80211_CRYPT_WEP=y
 | 
			
		||||
@@ -2475,7 +2475,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
 | 
			
		||||
# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
 | 
			
		||||
# CONFIG_SERIAL_ST_ASC is not set
 | 
			
		||||
CONFIG_SERIAL_DEV_BUS=y
 | 
			
		||||
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
 | 
			
		||||
# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set
 | 
			
		||||
# CONFIG_TTY_PRINTK is not set
 | 
			
		||||
# CONFIG_HVC_DCC is not set
 | 
			
		||||
# CONFIG_IPMI_HANDLER is not set
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ BOARD_NAME="Asus TinkerBoard"
 | 
			
		||||
CHASSIS=embedded
 | 
			
		||||
BOOTLOADER=uboot
 | 
			
		||||
KERNEL_FILE=zImage
 | 
			
		||||
BOOT_SYS=hybrid
 | 
			
		||||
BOOT_SYS=hyprid
 | 
			
		||||
BOOT_SPL=true
 | 
			
		||||
BOOT_ENV_SIZE=0x8000
 | 
			
		||||
SUPERVISOR_MACHINE=tinker
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,64 @@
 | 
			
		||||
From 2ae3821fd824560ef2db3c87cfbec985177911f6 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <2ae3821fd824560ef2db3c87cfbec985177911f6.1599249626.git.stefan@agner.ch>
 | 
			
		||||
From: "Miouyouyou (Myy)" <myy@miouyouyou.fr>
 | 
			
		||||
Date: Mon, 5 Nov 2018 22:03:26 +0100
 | 
			
		||||
Subject: [PATCH 1/2] ARM: DTS: rk3288-tinker: Setup the Bluetooth UART pins
 | 
			
		||||
 | 
			
		||||
The most essential being the RTS pin, which is clearly needed to
 | 
			
		||||
upload the initial configuration into the Realtek Bluetooth
 | 
			
		||||
chip, and make the Bluetooth chip work.
 | 
			
		||||
 | 
			
		||||
Now, the Bluetooth chip also needs 3 other GPIOS to be enabled.
 | 
			
		||||
I'll see how I do that through the DTS file in a near future.
 | 
			
		||||
 | 
			
		||||
The 3 GPIOS being :
 | 
			
		||||
Bluetooth Reset : <&gpio4 29 GPIO_ACTIVE_HIGH>
 | 
			
		||||
Bluetooth Wake  : <&gpio4 26 GPIO_ACTIVE_HIGH>
 | 
			
		||||
Bluetooth Wake_Host_IRQ : <&gpio4 31 GPIO_ACTIVE_HIGH>
 | 
			
		||||
 | 
			
		||||
These are currently setup manually, through scripts. But it seems that
 | 
			
		||||
GPIO handling through /sys entries might not be possible in the long
 | 
			
		||||
term, the replacement being libgpio.
 | 
			
		||||
Anyway, if you're interesting in enabling the Bluetooth GPIO by hand,
 | 
			
		||||
here are the commands :
 | 
			
		||||
 | 
			
		||||
cd /sys/class/gpio &&
 | 
			
		||||
echo 146 > export &&
 | 
			
		||||
echo 149 > export &&
 | 
			
		||||
echo 151 > export &&
 | 
			
		||||
echo high > gpio146/direction &&
 | 
			
		||||
echo high > gpio149/direction &&
 | 
			
		||||
echo high > gpio151/direction
 | 
			
		||||
 | 
			
		||||
Resetting the chip is done like this :
 | 
			
		||||
 | 
			
		||||
echo "Resetting the Bluetooth chip"
 | 
			
		||||
cd /sys/class/gpio/gpio149 &&
 | 
			
		||||
echo 0 > value &&
 | 
			
		||||
sleep 1 &&
 | 
			
		||||
echo 1 > value &&
 | 
			
		||||
sleep 1
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Miouyouyou (Myy) <myy@miouyouyou.fr>
 | 
			
		||||
[move change to rk3288-tinker.dtsi]
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm/boot/dts/rk3288-tinker.dtsi | 2 ++
 | 
			
		||||
 1 file changed, 2 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
index acfaa12ec239..284e7982925d 100644
 | 
			
		||||
--- a/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
+++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
@@ -492,6 +492,8 @@ &tsadc {
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
 &uart0 {
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+	pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.28.0
 | 
			
		||||
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
From ff0c5c49024da05b47d4fcc4d115761c43eef7a6 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
From 3f3c4cd047234fb94de4d6b701d05ff0450890cf Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <3f3c4cd047234fb94de4d6b701d05ff0450890cf.1613588152.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Wed, 17 Feb 2021 19:55:41 +0100
 | 
			
		||||
Subject: [PATCH] Revert "ARM: dts: rockchip: use DMA channels for UARTs for
 | 
			
		||||
@@ -11,10 +11,10 @@ This reverts commit 3425fe335c29310f6628faf9a7947d07f32d8962.
 | 
			
		||||
 1 file changed, 8 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
 | 
			
		||||
index 4dcdcf17c977..ff6faa82192b 100644
 | 
			
		||||
index 8fa80facc8cd..8636d95c45e1 100644
 | 
			
		||||
--- a/arch/arm/boot/dts/rk3288.dtsi
 | 
			
		||||
+++ b/arch/arm/boot/dts/rk3288.dtsi
 | 
			
		||||
@@ -378,8 +378,6 @@ uart0: serial@ff180000 {
 | 
			
		||||
@@ -422,8 +422,6 @@ uart0: serial@ff180000 {
 | 
			
		||||
 		reg-io-width = <4>;
 | 
			
		||||
 		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
 | 
			
		||||
 		clock-names = "baudclk", "apb_pclk";
 | 
			
		||||
@@ -23,7 +23,7 @@ index 4dcdcf17c977..ff6faa82192b 100644
 | 
			
		||||
 		pinctrl-names = "default";
 | 
			
		||||
 		pinctrl-0 = <&uart0_xfer>;
 | 
			
		||||
 		status = "disabled";
 | 
			
		||||
@@ -393,8 +391,6 @@ uart1: serial@ff190000 {
 | 
			
		||||
@@ -437,8 +435,6 @@ uart1: serial@ff190000 {
 | 
			
		||||
 		reg-io-width = <4>;
 | 
			
		||||
 		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
 | 
			
		||||
 		clock-names = "baudclk", "apb_pclk";
 | 
			
		||||
@@ -32,7 +32,7 @@ index 4dcdcf17c977..ff6faa82192b 100644
 | 
			
		||||
 		pinctrl-names = "default";
 | 
			
		||||
 		pinctrl-0 = <&uart1_xfer>;
 | 
			
		||||
 		status = "disabled";
 | 
			
		||||
@@ -421,8 +417,6 @@ uart3: serial@ff1b0000 {
 | 
			
		||||
@@ -465,8 +461,6 @@ uart3: serial@ff1b0000 {
 | 
			
		||||
 		reg-io-width = <4>;
 | 
			
		||||
 		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
 | 
			
		||||
 		clock-names = "baudclk", "apb_pclk";
 | 
			
		||||
@@ -41,7 +41,7 @@ index 4dcdcf17c977..ff6faa82192b 100644
 | 
			
		||||
 		pinctrl-names = "default";
 | 
			
		||||
 		pinctrl-0 = <&uart3_xfer>;
 | 
			
		||||
 		status = "disabled";
 | 
			
		||||
@@ -436,8 +430,6 @@ uart4: serial@ff1c0000 {
 | 
			
		||||
@@ -480,8 +474,6 @@ uart4: serial@ff1c0000 {
 | 
			
		||||
 		reg-io-width = <4>;
 | 
			
		||||
 		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
 | 
			
		||||
 		clock-names = "baudclk", "apb_pclk";
 | 
			
		||||
@@ -51,5 +51,5 @@ index 4dcdcf17c977..ff6faa82192b 100644
 | 
			
		||||
 		pinctrl-0 = <&uart4_xfer>;
 | 
			
		||||
 		status = "disabled";
 | 
			
		||||
-- 
 | 
			
		||||
2.36.1
 | 
			
		||||
2.30.1
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
From e73b4b762a0842cc75b2784e4c4267f6f4fc50c4 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <e73b4b762a0842cc75b2784e4c4267f6f4fc50c4.1652225232.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
References: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
From fc25c993bf2feb6e66d55bf03eb725ec688e47eb Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <fc25c993bf2feb6e66d55bf03eb725ec688e47eb.1599250914.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <2ae3821fd824560ef2db3c87cfbec985177911f6.1599250914.git.stefan@agner.ch>
 | 
			
		||||
References: <2ae3821fd824560ef2db3c87cfbec985177911f6.1599250914.git.stefan@agner.ch>
 | 
			
		||||
From: "Miouyouyou (Myy)" <myy@miouyouyou.fr>
 | 
			
		||||
Date: Mon, 5 Nov 2018 22:15:14 +0100
 | 
			
		||||
Subject: [PATCH] ARM: DTS: rk3288-tinker: Defining the SPI interface
 | 
			
		||||
Subject: [PATCH 2/3] ARM: DTS: rk3288-tinker: Defining the SPI interface
 | 
			
		||||
 | 
			
		||||
Taken from, and tested by @TonyMac32 .
 | 
			
		||||
 | 
			
		||||
@@ -21,7 +21,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
 1 file changed, 19 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
index 9c1e38c54eae..cf278bcc91ad 100644
 | 
			
		||||
index 284e7982925d..d6cc66ab5bb1 100644
 | 
			
		||||
--- a/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
+++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
@@ -485,6 +485,25 @@ &sdio0 {
 | 
			
		||||
@@ -51,5 +51,5 @@ index 9c1e38c54eae..cf278bcc91ad 100644
 | 
			
		||||
 	rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
 | 
			
		||||
 	rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
 | 
			
		||||
-- 
 | 
			
		||||
2.36.1
 | 
			
		||||
2.28.0
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
From 00de5155d12a178b83961f459ddccd7fa08ec25c Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <00de5155d12a178b83961f459ddccd7fa08ec25c.1652225232.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
References: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
From 3a9d71847ae869ffdb2b0818aa86a36d57d96331 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <3a9d71847ae869ffdb2b0818aa86a36d57d96331.1599250914.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <2ae3821fd824560ef2db3c87cfbec985177911f6.1599250914.git.stefan@agner.ch>
 | 
			
		||||
References: <2ae3821fd824560ef2db3c87cfbec985177911f6.1599250914.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Fri, 4 Sep 2020 21:57:55 +0200
 | 
			
		||||
Subject: [PATCH] ARM: dts: rockchip: enable I2C1/4 on rk3288-tinker
 | 
			
		||||
Subject: [PATCH 3/3] ARM: dts: rockchip: enable I2C1/4 on rk3288-tinker
 | 
			
		||||
 | 
			
		||||
Enable I2C devices which are accessible via 40-pin header.
 | 
			
		||||
 | 
			
		||||
@@ -14,7 +14,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
 1 file changed, 8 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
index cf278bcc91ad..f23c6efd39d4 100644
 | 
			
		||||
index d6cc66ab5bb1..7af5818ac77c 100644
 | 
			
		||||
--- a/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
+++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
@@ -344,10 +344,18 @@ regulator-state-mem {
 | 
			
		||||
@@ -37,5 +37,5 @@ index cf278bcc91ad..f23c6efd39d4 100644
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 };
 | 
			
		||||
-- 
 | 
			
		||||
2.36.1
 | 
			
		||||
2.28.0
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
From e45da42e71e4f92995d5ec11679ca00b0971dbfe Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <e45da42e71e4f92995d5ec11679ca00b0971dbfe.1652225232.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
References: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
From: Myy Miouyouyou <myy@miouyouyou.fr>
 | 
			
		||||
Date: Thu, 19 Oct 2017 21:24:47 +0200
 | 
			
		||||
Subject: [PATCH] RK3288: DTSI: rk3288.dtsi: Add missing SPI2 pinctrl
 | 
			
		||||
 | 
			
		||||
The spi2_cs1 pin reference is missing in the spi2 first pin control
 | 
			
		||||
definition.
 | 
			
		||||
 | 
			
		||||
This patch is taken from the patches provided by the ARMbian team.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Myy Miouyouyou <myy@miouyouyou.fr>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm/boot/dts/rk3288.dtsi | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
 | 
			
		||||
index ff6faa82192b..5061c5418d75 100644
 | 
			
		||||
--- a/arch/arm/boot/dts/rk3288.dtsi
 | 
			
		||||
+++ b/arch/arm/boot/dts/rk3288.dtsi
 | 
			
		||||
@@ -311,7 +311,7 @@ spi2: spi@ff130000 {
 | 
			
		||||
 		dma-names = "tx", "rx";
 | 
			
		||||
 		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
 		pinctrl-names = "default";
 | 
			
		||||
-		pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
 | 
			
		||||
+		pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0 &spi2_cs1>;
 | 
			
		||||
 		reg = <0x0 0xff130000 0x0 0x1000>;
 | 
			
		||||
 		#address-cells = <1>;
 | 
			
		||||
 		#size-cells = <0>;
 | 
			
		||||
-- 
 | 
			
		||||
2.36.1
 | 
			
		||||
 | 
			
		||||
@@ -1,31 +0,0 @@
 | 
			
		||||
From e33d3ba4c34d0893d9d07b62ad4eea41d2e8bbc0 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <e33d3ba4c34d0893d9d07b62ad4eea41d2e8bbc0.1652225232.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
References: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
From: "Miouyouyou (Myy)" <myy@miouyouyou.fr>
 | 
			
		||||
Date: Mon, 5 Nov 2018 20:16:05 +0100
 | 
			
		||||
Subject: [PATCH] ARM: DTSI: rk3288-tinker: Improving the CPU max voltage
 | 
			
		||||
 | 
			
		||||
Taken from the various patches provided by @TonyMac32 .
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Miouyouyou (Myy) <myy@miouyouyou.fr>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm/boot/dts/rk3288-tinker.dtsi | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
index f23c6efd39d4..cdff130d1292 100644
 | 
			
		||||
--- a/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
+++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
@@ -186,7 +186,7 @@ vdd_cpu: DCDC_REG1 {
 | 
			
		||||
 				regulator-always-on;
 | 
			
		||||
 				regulator-boot-on;
 | 
			
		||||
 				regulator-min-microvolt = <750000>;
 | 
			
		||||
-				regulator-max-microvolt = <1400000>;
 | 
			
		||||
+				regulator-max-microvolt = <1450000>;
 | 
			
		||||
 				regulator-name = "vdd_arm";
 | 
			
		||||
 				regulator-ramp-delay = <6000>;
 | 
			
		||||
 				regulator-state-mem {
 | 
			
		||||
-- 
 | 
			
		||||
2.36.1
 | 
			
		||||
 | 
			
		||||
@@ -1,119 +0,0 @@
 | 
			
		||||
From e073d75cd0dbfbcbbf1b46e565b326db37b75e6a Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <e073d75cd0dbfbcbbf1b46e565b326db37b75e6a.1652225232.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
References: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
From: Myy Miouyouyou <myy@miouyouyou.fr>
 | 
			
		||||
Date: Sun, 7 Jan 2018 01:52:44 +0100
 | 
			
		||||
Subject: [PATCH] drivers: mmc: dw-mci-rockchip: Handle ASUS Tinkerboard reboot
 | 
			
		||||
 | 
			
		||||
On ASUS Tinkerboard systems, if the SDMMC hardware is shutdown before
 | 
			
		||||
rebooting, the system will be dead, as the SDMMC is the only way to
 | 
			
		||||
boot anything, and the hardware doesn't power up the SDMMC hardware
 | 
			
		||||
automatically when rebooting.
 | 
			
		||||
 | 
			
		||||
So, when using an ASUS Tinkerboard system, a new reboot handler is
 | 
			
		||||
installed. This reboot handler takes care of powering the SDMMC
 | 
			
		||||
hardware again before restarting the system, resolving the issue.
 | 
			
		||||
 | 
			
		||||
The code was inspired by the pwrseq_emmc.c, which seems to overcome
 | 
			
		||||
similar effects with eMMC hardware.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Myy Miouyouyou <myy@miouyouyou.fr>
 | 
			
		||||
---
 | 
			
		||||
 drivers/mmc/host/dw_mmc-rockchip.c | 66 ++++++++++++++++++++++++++++++
 | 
			
		||||
 1 file changed, 66 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c
 | 
			
		||||
index d36991acd6df..a526927e29df 100644
 | 
			
		||||
--- a/drivers/mmc/host/dw_mmc-rockchip.c
 | 
			
		||||
+++ b/drivers/mmc/host/dw_mmc-rockchip.c
 | 
			
		||||
@@ -12,6 +12,11 @@
 | 
			
		||||
 #include <linux/pm_runtime.h>
 | 
			
		||||
 #include <linux/slab.h>
 | 
			
		||||
 
 | 
			
		||||
+#include <linux/regulator/consumer.h>
 | 
			
		||||
+#include <linux/reboot.h>
 | 
			
		||||
+#include <linux/delay.h>
 | 
			
		||||
+#include "../core/core.h"
 | 
			
		||||
+
 | 
			
		||||
 #include "dw_mmc.h"
 | 
			
		||||
 #include "dw_mmc-pltfm.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -330,6 +335,66 @@ static const struct of_device_id dw_mci_rockchip_match[] = {
 | 
			
		||||
 };
 | 
			
		||||
 MODULE_DEVICE_TABLE(of, dw_mci_rockchip_match);
 | 
			
		||||
 
 | 
			
		||||
+struct dw_mci_rockchip_broken_boards_data {
 | 
			
		||||
+	struct notifier_block reset_nb;
 | 
			
		||||
+	struct platform_device *pdev;
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+/* This reboot handler handles cases where disabling the SDMMC on
 | 
			
		||||
+ * reboot will cause the hardware to be unable to start correctly
 | 
			
		||||
+ * after rebooting.
 | 
			
		||||
+ * 
 | 
			
		||||
+ * This happens with Tinkerboard systems...
 | 
			
		||||
+ */
 | 
			
		||||
+static int dw_mci_rockchip_broken_boards_reset_nb(
 | 
			
		||||
+	struct notifier_block *this,
 | 
			
		||||
+	unsigned long mode, void *cmd)
 | 
			
		||||
+{
 | 
			
		||||
+	struct dw_mci_rockchip_broken_boards_data const *data =
 | 
			
		||||
+		container_of(this,
 | 
			
		||||
+			struct dw_mci_rockchip_broken_boards_data,
 | 
			
		||||
+			reset_nb);
 | 
			
		||||
+	struct dw_mci *host = platform_get_drvdata(data->pdev);
 | 
			
		||||
+	struct mmc_host *mmc = host->slot->mmc;
 | 
			
		||||
+
 | 
			
		||||
+	printk(KERN_ERR "Meow.\n");
 | 
			
		||||
+
 | 
			
		||||
+	mmc_power_off(mmc);
 | 
			
		||||
+
 | 
			
		||||
+	mdelay(20);
 | 
			
		||||
+
 | 
			
		||||
+	if (!IS_ERR(mmc->supply.vmmc))
 | 
			
		||||
+		regulator_enable(mmc->supply.vmmc);
 | 
			
		||||
+
 | 
			
		||||
+	if (!IS_ERR(mmc->supply.vqmmc))
 | 
			
		||||
+		regulator_set_voltage(mmc->supply.vqmmc, 3000000, 3300000);
 | 
			
		||||
+
 | 
			
		||||
+	printk(KERN_ERR "woeM.\n");
 | 
			
		||||
+
 | 
			
		||||
+	return NOTIFY_DONE;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+static void dw_mci_rockchip_register_broken_boards_reboot_handler(
 | 
			
		||||
+	struct platform_device *pdev)
 | 
			
		||||
+{
 | 
			
		||||
+	struct dw_mci_rockchip_broken_boards_data *data;
 | 
			
		||||
+
 | 
			
		||||
+	if (!of_machine_is_compatible("asus,rk3288-tinker"))
 | 
			
		||||
+		return;
 | 
			
		||||
+
 | 
			
		||||
+	data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
 | 
			
		||||
+
 | 
			
		||||
+	if (!data)
 | 
			
		||||
+		return;
 | 
			
		||||
+
 | 
			
		||||
+	data->reset_nb.notifier_call =
 | 
			
		||||
+		dw_mci_rockchip_broken_boards_reset_nb;
 | 
			
		||||
+	data->reset_nb.priority = 255;
 | 
			
		||||
+	register_restart_handler(&data->reset_nb);
 | 
			
		||||
+
 | 
			
		||||
+	data->pdev = pdev;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 static int dw_mci_rockchip_probe(struct platform_device *pdev)
 | 
			
		||||
 {
 | 
			
		||||
 	const struct dw_mci_drv_data *drv_data;
 | 
			
		||||
@@ -357,6 +422,7 @@ static int dw_mci_rockchip_probe(struct platform_device *pdev)
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	pm_runtime_put_autosuspend(&pdev->dev);
 | 
			
		||||
+	dw_mci_rockchip_register_broken_boards_reboot_handler(pdev);
 | 
			
		||||
 
 | 
			
		||||
 	return 0;
 | 
			
		||||
 }
 | 
			
		||||
-- 
 | 
			
		||||
2.36.1
 | 
			
		||||
 | 
			
		||||
@@ -1,63 +0,0 @@
 | 
			
		||||
From 392472dc977300a9f2a62159c105a6dfed878643 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <392472dc977300a9f2a62159c105a6dfed878643.1652225232.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
References: <ff0c5c49024da05b47d4fcc4d115761c43eef7a6.1652225232.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Tue, 10 May 2022 22:57:26 +0200
 | 
			
		||||
Subject: [PATCH] ARM: dts: rockchip: Add Bluetooth to rk3288-tinker
 | 
			
		||||
 | 
			
		||||
Enable Bluetooth support via UART0. Use the existing bindings
 | 
			
		||||
for Realtek rtl8723bs Bluetooth device.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm/boot/dts/rk3288-tinker.dtsi | 26 ++++++++++++++++++++++++++
 | 
			
		||||
 1 file changed, 26 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
index cdff130d1292..e904c130dedc 100644
 | 
			
		||||
--- a/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
+++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
@@ -388,6 +388,20 @@ bl_en: bl-en {
 | 
			
		||||
 		};
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
+	bluetooth {
 | 
			
		||||
+		bt_enable_pin: bt-enable-pin {
 | 
			
		||||
+			rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		bt_device_wake_pin: bt-device-wake-pin {
 | 
			
		||||
+			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		bt_host_wake_pin: bt-host-wake-pin {
 | 
			
		||||
+			rockchip,pins = <4 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
 	buttons {
 | 
			
		||||
 		pwrbtn: pwrbtn {
 | 
			
		||||
 			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
@@ -520,6 +534,18 @@ &tsadc {
 | 
			
		||||
 
 | 
			
		||||
 &uart0 {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
 | 
			
		||||
+	uart-has-rtscts;
 | 
			
		||||
+
 | 
			
		||||
+	bluetooth {
 | 
			
		||||
+		compatible = "realtek,rtl8723bs-bt";
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+		pinctrl-0 = <&bt_device_wake_pin &bt_host_wake_pin &bt_enable_pin>;
 | 
			
		||||
+		enable-gpios = <&gpio4 RK_PD5 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		device-wake-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		host-wake-gpios = <&gpio4 RK_PD7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+	};
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
 &uart1 {
 | 
			
		||||
-- 
 | 
			
		||||
2.36.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,31 @@
 | 
			
		||||
From 062488e4b8fd552c01e1104b3bc91a6f7ffe6c41 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Myy Miouyouyou <myy@miouyouyou.fr>
 | 
			
		||||
Date: Thu, 19 Oct 2017 21:24:47 +0200
 | 
			
		||||
Subject: [PATCH 10/28] RK3288: DTSI: rk3288.dtsi: Add missing SPI2 pinctrl
 | 
			
		||||
 | 
			
		||||
The spi2_cs1 pin reference is missing in the spi2 first pin control
 | 
			
		||||
definition.
 | 
			
		||||
 | 
			
		||||
This patch is taken from the patches provided by the ARMbian team.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Myy Miouyouyou <myy@miouyouyou.fr>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm/boot/dts/rk3288.dtsi | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
 | 
			
		||||
index 5b789528..9ed532cc 100644
 | 
			
		||||
--- a/arch/arm/boot/dts/rk3288.dtsi
 | 
			
		||||
+++ b/arch/arm/boot/dts/rk3288.dtsi
 | 
			
		||||
@@ -334,7 +334,7 @@
 | 
			
		||||
 		dma-names = "tx", "rx";
 | 
			
		||||
 		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
 		pinctrl-names = "default";
 | 
			
		||||
-		pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
 | 
			
		||||
+		pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0 &spi2_cs1>;
 | 
			
		||||
 		reg = <0x0 0xff130000 0x0 0x1000>;
 | 
			
		||||
 		#address-cells = <1>;
 | 
			
		||||
 		#size-cells = <0>;
 | 
			
		||||
-- 
 | 
			
		||||
2.11.0
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,98 @@
 | 
			
		||||
From d5d5c53173c484a13cda62a537cbf75a5df4b0e4 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: "Miouyouyou (Myy)" <myy@miouyouyou.fr>
 | 
			
		||||
Date: Mon, 5 Nov 2018 21:58:56 +0100
 | 
			
		||||
Subject: [PATCH] ARM: DTS: rk3288-tinker: Enabling SDIO and Wifi
 | 
			
		||||
 | 
			
		||||
Adding the appropriate nodes in order to exploit the WiFi capabilities
 | 
			
		||||
of the board.
 | 
			
		||||
Since these capabilities are provided through SDIO, and the SDIO
 | 
			
		||||
nodes were not defined, these were added too.
 | 
			
		||||
 | 
			
		||||
These seems to depend on each other so they are added in one big
 | 
			
		||||
patch.
 | 
			
		||||
 | 
			
		||||
Split if necessary.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Miouyouyou (Myy) <myy@miouyouyou.fr>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm/boot/dts/rk3288-tinker.dts | 62 +++++++++++++++++++++++++++++++++++++
 | 
			
		||||
 1 file changed, 62 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts
 | 
			
		||||
index 1e43527aa..d4df13bed 100644
 | 
			
		||||
--- a/arch/arm/boot/dts/rk3288-tinker.dts
 | 
			
		||||
+++ b/arch/arm/boot/dts/rk3288-tinker.dts
 | 
			
		||||
@@ -6,8 +6,70 @@
 | 
			
		||||
 /dts-v1/;
 | 
			
		||||
 
 | 
			
		||||
 #include "rk3288-tinker.dtsi"
 | 
			
		||||
+#include <dt-bindings/clock/rockchip,rk808.h>
 | 
			
		||||
 
 | 
			
		||||
 / {
 | 
			
		||||
 	model = "Rockchip RK3288 Asus Tinker Board";
 | 
			
		||||
 	compatible = "asus,rk3288-tinker", "rockchip,rk3288";
 | 
			
		||||
+
 | 
			
		||||
+	/* This is essential to get SDIO devices working.
 | 
			
		||||
+	   The Wifi depends on SDIO ! */
 | 
			
		||||
+	sdio_pwrseq: sdio-pwrseq {
 | 
			
		||||
+		compatible = "mmc-pwrseq-simple";
 | 
			
		||||
+		clocks = <&rk808 RK808_CLKOUT1>;
 | 
			
		||||
+		clock-names = "ext_clock";
 | 
			
		||||
+		pinctrl-names = "default";
 | 
			
		||||
+		pinctrl-0 = <&chip_enable_h>, <&wifi_enable_h>;
 | 
			
		||||
+
 | 
			
		||||
+		/*
 | 
			
		||||
+		 * On the module itself this is one of these (depending
 | 
			
		||||
+		 * on the actual card populated):
 | 
			
		||||
+		 * - SDIO_RESET_L_WL_REG_ON
 | 
			
		||||
+		 * - PDN (power down when low)
 | 
			
		||||
+		 */
 | 
			
		||||
+		reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>, <&gpio4 27 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	wireless-wlan {
 | 
			
		||||
+		compatible = "wlan-platdata";
 | 
			
		||||
+		rockchip,grf = <&grf>;
 | 
			
		||||
+		sdio_vref = <1800>;
 | 
			
		||||
+		status = "okay";
 | 
			
		||||
+		wifi_chip_type = "8723bs";
 | 
			
		||||
+		WIFI,host_wake_irq = <&gpio4 30 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&io_domains {
 | 
			
		||||
+	wifi-supply = <&vcc_18>;
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&pinctrl {
 | 
			
		||||
+	sdio-pwrseq {
 | 
			
		||||
+		wifi_enable_h: wifienable-h {
 | 
			
		||||
+			rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
+		chip_enable_h: chip-enable-h {
 | 
			
		||||
+			rockchip,pins = <4 27 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&sdio0 {
 | 
			
		||||
+	bus-width = <4>;
 | 
			
		||||
+	cap-sd-highspeed;
 | 
			
		||||
+	cap-sdio-irq;
 | 
			
		||||
+	clock-frequency = <50000000>;
 | 
			
		||||
+	clock-freq-min-max = <200000 50000000>;
 | 
			
		||||
+	disable-wp;
 | 
			
		||||
+	keep-power-in-suspend;
 | 
			
		||||
+	mmc-pwrseq = <&sdio_pwrseq>;
 | 
			
		||||
+	non-removable;
 | 
			
		||||
+	num-slots = <1>;
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 | 
			
		||||
+	sd-uhs-sdr104;
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	supports-sdio;
 | 
			
		||||
 };
 | 
			
		||||
-- 
 | 
			
		||||
2.16.4
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,28 @@
 | 
			
		||||
From ebc29962ac27264772a4227f5abd6900cb72fa79 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: "Miouyouyou (Myy)" <myy@miouyouyou.fr>
 | 
			
		||||
Date: Mon, 5 Nov 2018 20:16:05 +0100
 | 
			
		||||
Subject: [PATCH] ARM: DTSI: rk3288-tinker: Improving the CPU max voltage
 | 
			
		||||
 | 
			
		||||
Taken from the various patches provided by @TonyMac32 .
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Miouyouyou (Myy) <myy@miouyouyou.fr>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm/boot/dts/rk3288-tinker.dtsi | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
index aa107ee41..3da1c830f 100644
 | 
			
		||||
--- a/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
+++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
 | 
			
		||||
@@ -164,7 +164,7 @@
 | 
			
		||||
 				regulator-always-on;
 | 
			
		||||
 				regulator-boot-on;
 | 
			
		||||
 				regulator-min-microvolt = <750000>;
 | 
			
		||||
-				regulator-max-microvolt = <1400000>;
 | 
			
		||||
+				regulator-max-microvolt = <1450000>;
 | 
			
		||||
 				regulator-name = "vdd_arm";
 | 
			
		||||
 				regulator-ramp-delay = <6000>;
 | 
			
		||||
 				regulator-state-mem {
 | 
			
		||||
-- 
 | 
			
		||||
2.16.4
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,116 @@
 | 
			
		||||
From 302cd9b8a9f1f8a7735fabea3b9a7645dc40f9cc Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Myy Miouyouyou <myy@miouyouyou.fr>
 | 
			
		||||
Date: Sun, 7 Jan 2018 01:52:44 +0100
 | 
			
		||||
Subject: [PATCH] drivers: mmc: dw-mci-rockchip: Handle ASUS Tinkerboard reboot
 | 
			
		||||
 | 
			
		||||
On ASUS Tinkerboard systems, if the SDMMC hardware is shutdown before
 | 
			
		||||
rebooting, the system will be dead, as the SDMMC is the only way to
 | 
			
		||||
boot anything, and the hardware doesn't power up the SDMMC hardware
 | 
			
		||||
automatically when rebooting.
 | 
			
		||||
 | 
			
		||||
So, when using an ASUS Tinkerboard system, a new reboot handler is
 | 
			
		||||
installed. This reboot handler takes care of powering the SDMMC
 | 
			
		||||
hardware again before restarting the system, resolving the issue.
 | 
			
		||||
 | 
			
		||||
The code was inspired by the pwrseq_emmc.c, which seems to overcome
 | 
			
		||||
similar effects with eMMC hardware.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Myy Miouyouyou <myy@miouyouyou.fr>
 | 
			
		||||
---
 | 
			
		||||
 drivers/mmc/host/dw_mmc-rockchip.c | 66 ++++++++++++++++++++++++++++++++++++++
 | 
			
		||||
 1 file changed, 66 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c
 | 
			
		||||
index a3f1c2b30..7eac1f221 100644
 | 
			
		||||
--- a/drivers/mmc/host/dw_mmc-rockchip.c
 | 
			
		||||
+++ b/drivers/mmc/host/dw_mmc-rockchip.c
 | 
			
		||||
@@ -16,6 +16,11 @@
 | 
			
		||||
 #include <linux/pm_runtime.h>
 | 
			
		||||
 #include <linux/slab.h>
 | 
			
		||||
 
 | 
			
		||||
+#include <linux/regulator/consumer.h>
 | 
			
		||||
+#include <linux/reboot.h>
 | 
			
		||||
+#include <linux/delay.h>
 | 
			
		||||
+#include "../core/core.h"
 | 
			
		||||
+
 | 
			
		||||
 #include "dw_mmc.h"
 | 
			
		||||
 #include "dw_mmc-pltfm.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -334,6 +339,66 @@ static const struct of_device_id dw_mci_rockchip_match[] = {
 | 
			
		||||
 };
 | 
			
		||||
 MODULE_DEVICE_TABLE(of, dw_mci_rockchip_match);
 | 
			
		||||
 
 | 
			
		||||
+struct dw_mci_rockchip_broken_boards_data {
 | 
			
		||||
+	struct notifier_block reset_nb;
 | 
			
		||||
+	struct platform_device *pdev;
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+/* This reboot handler handles cases where disabling the SDMMC on
 | 
			
		||||
+ * reboot will cause the hardware to be unable to start correctly
 | 
			
		||||
+ * after rebooting.
 | 
			
		||||
+ * 
 | 
			
		||||
+ * This happens with Tinkerboard systems...
 | 
			
		||||
+ */
 | 
			
		||||
+static int dw_mci_rockchip_broken_boards_reset_nb(
 | 
			
		||||
+	struct notifier_block *this,
 | 
			
		||||
+	unsigned long mode, void *cmd)
 | 
			
		||||
+{
 | 
			
		||||
+	struct dw_mci_rockchip_broken_boards_data const *data =
 | 
			
		||||
+		container_of(this,
 | 
			
		||||
+			struct dw_mci_rockchip_broken_boards_data,
 | 
			
		||||
+			reset_nb);
 | 
			
		||||
+	struct dw_mci *host = platform_get_drvdata(data->pdev);
 | 
			
		||||
+	struct mmc_host *mmc = host->slot->mmc;
 | 
			
		||||
+
 | 
			
		||||
+	printk(KERN_ERR "Meow.\n");
 | 
			
		||||
+
 | 
			
		||||
+	mmc_power_off(mmc);
 | 
			
		||||
+
 | 
			
		||||
+	mdelay(20);
 | 
			
		||||
+
 | 
			
		||||
+	if (!IS_ERR(mmc->supply.vmmc))
 | 
			
		||||
+		regulator_enable(mmc->supply.vmmc);
 | 
			
		||||
+
 | 
			
		||||
+	if (!IS_ERR(mmc->supply.vqmmc))
 | 
			
		||||
+		regulator_set_voltage(mmc->supply.vqmmc, 3000000, 3300000);
 | 
			
		||||
+
 | 
			
		||||
+	printk(KERN_ERR "woeM.\n");
 | 
			
		||||
+
 | 
			
		||||
+	return NOTIFY_DONE;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+static void dw_mci_rockchip_register_broken_boards_reboot_handler(
 | 
			
		||||
+	struct platform_device *pdev)
 | 
			
		||||
+{
 | 
			
		||||
+	struct dw_mci_rockchip_broken_boards_data *data;
 | 
			
		||||
+
 | 
			
		||||
+	if (!of_machine_is_compatible("asus,rk3288-tinker"))
 | 
			
		||||
+		return;
 | 
			
		||||
+
 | 
			
		||||
+	data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
 | 
			
		||||
+
 | 
			
		||||
+	if (!data)
 | 
			
		||||
+		return;
 | 
			
		||||
+
 | 
			
		||||
+	data->reset_nb.notifier_call =
 | 
			
		||||
+		dw_mci_rockchip_broken_boards_reset_nb;
 | 
			
		||||
+	data->reset_nb.priority = 255;
 | 
			
		||||
+	register_restart_handler(&data->reset_nb);
 | 
			
		||||
+
 | 
			
		||||
+	data->pdev = pdev;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 static int dw_mci_rockchip_probe(struct platform_device *pdev)
 | 
			
		||||
 {
 | 
			
		||||
 	const struct dw_mci_drv_data *drv_data;
 | 
			
		||||
@@ -361,6 +426,7 @@ static int dw_mci_rockchip_probe(struct platform_device *pdev)
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	pm_runtime_put_autosuspend(&pdev->dev);
 | 
			
		||||
+	dw_mci_rockchip_register_broken_boards_reboot_handler(pdev);
 | 
			
		||||
 
 | 
			
		||||
 	return 0;
 | 
			
		||||
 }
 | 
			
		||||
-- 
 | 
			
		||||
2.14.1
 | 
			
		||||
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
From 966cd1782632bc8279667955ec315e93c89495e6 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch>
 | 
			
		||||
From 983121a741192153492a61befc0e0fc61b9f8b14 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <983121a741192153492a61befc0e0fc61b9f8b14.1617731428.git.stefan@agner.ch>
 | 
			
		||||
From: Pascal Vizeli <pvizeli@syshack.ch>
 | 
			
		||||
Date: Fri, 24 Apr 2020 12:41:50 +0000
 | 
			
		||||
Subject: [PATCH 1/2] SPL: modify load address of U-Boot
 | 
			
		||||
@@ -15,23 +15,23 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
 2 files changed, 2 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/configs/tinker-rk3288_defconfig b/configs/tinker-rk3288_defconfig
 | 
			
		||||
index a9c9a122f6..b839fdb570 100644
 | 
			
		||||
index 8686a66d13..c3363821dd 100644
 | 
			
		||||
--- a/configs/tinker-rk3288_defconfig
 | 
			
		||||
+++ b/configs/tinker-rk3288_defconfig
 | 
			
		||||
@@ -92,3 +92,4 @@ CONFIG_VIDEO_ROCKCHIP=y
 | 
			
		||||
@@ -88,3 +88,4 @@ CONFIG_VIDEO_ROCKCHIP=y
 | 
			
		||||
 CONFIG_DISPLAY_ROCKCHIP_HDMI=y
 | 
			
		||||
 CONFIG_CMD_DHRYSTONE=y
 | 
			
		||||
 CONFIG_ERRNO_STR=y
 | 
			
		||||
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x2000
 | 
			
		||||
diff --git a/configs/tinker-s-rk3288_defconfig b/configs/tinker-s-rk3288_defconfig
 | 
			
		||||
index f367c9370f..c52b0753ec 100644
 | 
			
		||||
index 22714833cc..f5dd23577c 100644
 | 
			
		||||
--- a/configs/tinker-s-rk3288_defconfig
 | 
			
		||||
+++ b/configs/tinker-s-rk3288_defconfig
 | 
			
		||||
@@ -94,3 +94,4 @@ CONFIG_DISPLAY_ROCKCHIP_HDMI=y
 | 
			
		||||
@@ -90,3 +90,4 @@ CONFIG_DISPLAY_ROCKCHIP_HDMI=y
 | 
			
		||||
 CONFIG_CONSOLE_SCROLL_LINES=10
 | 
			
		||||
 CONFIG_CMD_DHRYSTONE=y
 | 
			
		||||
 CONFIG_ERRNO_STR=y
 | 
			
		||||
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x2000
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
2.31.1
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
From 98674c65a6595e7ac554f7ec9d6f0228556756f6 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <98674c65a6595e7ac554f7ec9d6f0228556756f6.1645627366.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch>
 | 
			
		||||
References: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch>
 | 
			
		||||
From f9195bc5cb18f71117f6efc1c352209e62c53706 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <f9195bc5cb18f71117f6efc1c352209e62c53706.1617731428.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <983121a741192153492a61befc0e0fc61b9f8b14.1617731428.git.stefan@agner.ch>
 | 
			
		||||
References: <983121a741192153492a61befc0e0fc61b9f8b14.1617731428.git.stefan@agner.ch>
 | 
			
		||||
From: Pascal Vizeli <pvizeli@syshack.ch>
 | 
			
		||||
Date: Fri, 24 Apr 2020 11:37:55 +0000
 | 
			
		||||
Subject: [PATCH 2/2] pmic: enable LDO2 vcc33_mipi at bootup
 | 
			
		||||
@@ -64,5 +64,5 @@ index f85209c649..6fa1bb0c66 100644
 | 
			
		||||
+}
 | 
			
		||||
+#endif
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
2.31.1
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1469,6 +1469,7 @@ CONFIG_CFG80211=m
 | 
			
		||||
CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
 | 
			
		||||
CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
 | 
			
		||||
CONFIG_CFG80211_DEFAULT_PS=y
 | 
			
		||||
CONFIG_CFG80211_CRDA_SUPPORT=y
 | 
			
		||||
CONFIG_CFG80211_WEXT=y
 | 
			
		||||
CONFIG_MAC80211=m
 | 
			
		||||
CONFIG_MAC80211_HAS_RC=y
 | 
			
		||||
@@ -3812,17 +3813,15 @@ CONFIG_IR_MESON=m
 | 
			
		||||
# CONFIG_IR_SIR is not set
 | 
			
		||||
# CONFIG_RC_XBOX_DVD is not set
 | 
			
		||||
# CONFIG_IR_TOY is not set
 | 
			
		||||
CONFIG_CEC_CORE=m
 | 
			
		||||
CONFIG_CEC_CORE=y
 | 
			
		||||
CONFIG_CEC_NOTIFIER=y
 | 
			
		||||
CONFIG_CEC_PIN=y
 | 
			
		||||
CONFIG_MEDIA_CEC_RC=y
 | 
			
		||||
CONFIG_MEDIA_CEC_SUPPORT=y
 | 
			
		||||
# CONFIG_CEC_CH7322 is not set
 | 
			
		||||
# CONFIG_CEC_CROS_EC is not set
 | 
			
		||||
CONFIG_CEC_MESON_AO=m
 | 
			
		||||
CONFIG_CEC_MESON_G12A_AO=m
 | 
			
		||||
CONFIG_CEC_GPIO=m
 | 
			
		||||
CONFIG_USB_PULSE8_CEC=m
 | 
			
		||||
# CONFIG_CEC_MESON_AO is not set
 | 
			
		||||
# CONFIG_CEC_MESON_G12A_AO is not set
 | 
			
		||||
# CONFIG_CEC_GPIO is not set
 | 
			
		||||
# CONFIG_USB_PULSE8_CEC is not set
 | 
			
		||||
# CONFIG_USB_RAINSHADOW_CEC is not set
 | 
			
		||||
CONFIG_MEDIA_SUPPORT=y
 | 
			
		||||
CONFIG_MEDIA_SUPPORT_FILTER=y
 | 
			
		||||
@@ -4364,10 +4363,10 @@ CONFIG_DRM_PANEL_BRIDGE=y
 | 
			
		||||
# CONFIG_DRM_ANALOGIX_ANX78XX is not set
 | 
			
		||||
# CONFIG_DRM_I2C_ADV7511 is not set
 | 
			
		||||
# CONFIG_DRM_CDNS_MHDP8546 is not set
 | 
			
		||||
CONFIG_DRM_DW_HDMI=m
 | 
			
		||||
CONFIG_DRM_DW_HDMI=y
 | 
			
		||||
# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
 | 
			
		||||
CONFIG_DRM_DW_HDMI_I2S_AUDIO=y
 | 
			
		||||
# CONFIG_DRM_DW_HDMI_CEC is not set
 | 
			
		||||
CONFIG_DRM_DW_HDMI_CEC=y
 | 
			
		||||
# end of Display Interface Bridges
 | 
			
		||||
 | 
			
		||||
# CONFIG_DRM_ETNAVIV is not set
 | 
			
		||||
@@ -4375,8 +4374,8 @@ CONFIG_DRM_DW_HDMI_I2S_AUDIO=y
 | 
			
		||||
# CONFIG_DRM_HISI_HIBMC is not set
 | 
			
		||||
# CONFIG_DRM_HISI_KIRIN is not set
 | 
			
		||||
# CONFIG_DRM_MXSFB is not set
 | 
			
		||||
CONFIG_DRM_MESON=m
 | 
			
		||||
CONFIG_DRM_MESON_DW_HDMI=m
 | 
			
		||||
CONFIG_DRM_MESON=y
 | 
			
		||||
CONFIG_DRM_MESON_DW_HDMI=y
 | 
			
		||||
# CONFIG_DRM_CIRRUS_QEMU is not set
 | 
			
		||||
# CONFIG_DRM_GM12U320 is not set
 | 
			
		||||
# CONFIG_TINYDRM_HX8357D is not set
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
console=tty0 console=ttyAML0,115200n8
 | 
			
		||||
@@ -13,7 +13,8 @@ function hassos_pre_image() {
 | 
			
		||||
    mkdir -p "${BOOT_DATA}/overlays"
 | 
			
		||||
    cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/"
 | 
			
		||||
    cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
 | 
			
		||||
    cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
 | 
			
		||||
 | 
			
		||||
    echo "console=tty0 console=ttyAML0,115200n8" > "${BOOT_DATA}/cmdline.txt"
 | 
			
		||||
 | 
			
		||||
    # SPL
 | 
			
		||||
    create_spl_image
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
console=tty0 console=ttyAML0,115200n8
 | 
			
		||||
@@ -12,7 +12,8 @@ function hassos_pre_image() {
 | 
			
		||||
    mkdir -p "${BOOT_DATA}/overlays"
 | 
			
		||||
    cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/"
 | 
			
		||||
    cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
 | 
			
		||||
    cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
 | 
			
		||||
 | 
			
		||||
    echo "console=tty0 console=ttyAML0,115200n8" > "${BOOT_DATA}/cmdline.txt"
 | 
			
		||||
 | 
			
		||||
    # SPL
 | 
			
		||||
    create_spl_image
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
console=tty0 console=ttyAML0,115200n8
 | 
			
		||||
@@ -12,7 +12,8 @@ function hassos_pre_image() {
 | 
			
		||||
    mkdir -p "${BOOT_DATA}/overlays"
 | 
			
		||||
    cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/"
 | 
			
		||||
    cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
 | 
			
		||||
    cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
 | 
			
		||||
 | 
			
		||||
    echo "console=tty0 console=ttyAML0,115200n8" > "${BOOT_DATA}/cmdline.txt"
 | 
			
		||||
 | 
			
		||||
    # SPL
 | 
			
		||||
    create_spl_image
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
console=tty1 console=ttySAC2,115200
 | 
			
		||||
@@ -11,7 +11,8 @@ function hassos_pre_image() {
 | 
			
		||||
 | 
			
		||||
    cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
 | 
			
		||||
    cp "${BINARIES_DIR}/exynos5422-odroidxu4.dtb" "${BOOT_DATA}/exynos5422-odroidxu4.dtb"
 | 
			
		||||
    cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
 | 
			
		||||
 | 
			
		||||
    echo "console=tty1 console=ttySAC2,115200" > "${BOOT_DATA}/cmdline.txt"
 | 
			
		||||
 | 
			
		||||
    # SPL
 | 
			
		||||
    create_spl_image
 | 
			
		||||
 
 | 
			
		||||
@@ -1,40 +0,0 @@
 | 
			
		||||
From 9f8390a715bc58e7423b65a18c4499761c84b819 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Mon, 11 Jan 2021 11:20:48 +0100
 | 
			
		||||
Subject: [PATCH 1/7] arm64: dts: meson: g12b: add power button support
 | 
			
		||||
 | 
			
		||||
Add power button support on J2 pin 11 (GPIOX_3 on the SoC side). The
 | 
			
		||||
GPIO is low active, e.g. when connecting with pin 9 (GND) a power
 | 
			
		||||
button press is triggered.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 11 +++++++++++
 | 
			
		||||
 1 file changed, 11 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
index d33e54b5e196..5f0f036b1265 100644
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -39,6 +39,17 @@ emmc_pwrseq: emmc-pwrseq {
 | 
			
		||||
 		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
+	gpio-keys-polled {
 | 
			
		||||
+		compatible = "gpio-keys-polled";
 | 
			
		||||
+		poll-interval = <100>;
 | 
			
		||||
+
 | 
			
		||||
+		power-button {
 | 
			
		||||
+			label = "power";
 | 
			
		||||
+			linux,code = <KEY_POWER>;
 | 
			
		||||
+			gpios = <&gpio GPIOX_3 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
 	leds {
 | 
			
		||||
 		compatible = "gpio-leds";
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
 | 
			
		||||
@@ -1,42 +0,0 @@
 | 
			
		||||
From 26917e25696e7156a85d4dfcc578cb4cf4f42dde Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <26917e25696e7156a85d4dfcc578cb4cf4f42dde.1646168061.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
References: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Mon, 11 Jan 2021 11:38:54 +0100
 | 
			
		||||
Subject: [PATCH 2/7] arm64: dts: meson: g12b: add GPIO fan support
 | 
			
		||||
 | 
			
		||||
Add simple GPIO fan node to support a fan on GPIO J8. Unfortunately the
 | 
			
		||||
pad used to control the fan does not support real PWM, hence the RPM
 | 
			
		||||
cannot be modulated.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 11 +++++++++++
 | 
			
		||||
 1 file changed, 11 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
index 5f0f036b1265..36dbd2666015 100644
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -39,6 +39,17 @@ emmc_pwrseq: emmc-pwrseq {
 | 
			
		||||
 		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
+	/*
 | 
			
		||||
+	 * 5V 80x80x10.8mm cooling fan from Hardkernel shop.
 | 
			
		||||
+	 */
 | 
			
		||||
+	fan0: gpio-fan {
 | 
			
		||||
+		#cooling-cells = <2>;
 | 
			
		||||
+		compatible = "gpio-fan";
 | 
			
		||||
+		gpio-fan,speed-map = <0 0 1600 1>;
 | 
			
		||||
+		gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		status = "okay";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
 	gpio-keys-polled {
 | 
			
		||||
 		compatible = "gpio-keys-polled";
 | 
			
		||||
 		poll-interval = <100>;
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
 | 
			
		||||
@@ -1,74 +0,0 @@
 | 
			
		||||
From 5b2b8c960269eba18f0557bf49990b9c28e5e6af Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <5b2b8c960269eba18f0557bf49990b9c28e5e6af.1646168061.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
References: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Mon, 11 Jan 2021 15:53:55 +0100
 | 
			
		||||
Subject: [PATCH 3/7] arm64: dts: meson: g12b: odroid-n2: add fan as cooling
 | 
			
		||||
 device
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
Add the GPIO fan as a cooling device for the CPU thermal zone. Since we
 | 
			
		||||
have only full fan speed available with this, set the tripping point to
 | 
			
		||||
65°C which is the highest tripping point which Hardkernel used in their
 | 
			
		||||
downstream kernel.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 .../dts/amlogic/meson-g12b-odroid-n2.dtsi     | 38 +++++++++++++++++++
 | 
			
		||||
 1 file changed, 38 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
index 36dbd2666015..5ca75696bd5c 100644
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -388,6 +388,44 @@ &clkc_audio {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&cpu_thermal {
 | 
			
		||||
+	trips {
 | 
			
		||||
+		cpu_warm: cpu_warm {
 | 
			
		||||
+			hysteresis = <5000>;
 | 
			
		||||
+			temperature = <65000>;
 | 
			
		||||
+			type = "active";
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	cooling-maps {
 | 
			
		||||
+		map0 {
 | 
			
		||||
+			cooling-device =
 | 
			
		||||
+				<&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 | 
			
		||||
+			trip = <&cpu_warm>;
 | 
			
		||||
+		};
 | 
			
		||||
+		map1 {
 | 
			
		||||
+			trip = <&cpu_passive>;
 | 
			
		||||
+			cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 | 
			
		||||
+		};
 | 
			
		||||
+		map2 {
 | 
			
		||||
+			trip = <&cpu_hot>;
 | 
			
		||||
+			cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 &cpu0 {
 | 
			
		||||
 	cpu-supply = <&vddcpu_b>;
 | 
			
		||||
 	operating-points-v2 = <&cpu_opp_table_0>;
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
 | 
			
		||||
@@ -1,44 +0,0 @@
 | 
			
		||||
From fee88e0053de7878977913311bdb153494aa6c61 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <fee88e0053de7878977913311bdb153494aa6c61.1646168061.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
References: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
From: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Date: Fri, 27 Mar 2020 17:05:22 +0900
 | 
			
		||||
Subject: [PATCH 4/7] arm64: dts: meson: add uart_A node
 | 
			
		||||
 | 
			
		||||
The UART_A is available through J3 pin 8/10 and documented to be
 | 
			
		||||
available as UART by default.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 7 +++++++
 | 
			
		||||
 1 file changed, 7 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
index 5ca75696bd5c..738eb0339333 100644
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -12,6 +12,7 @@
 | 
			
		||||
 / {
 | 
			
		||||
 	aliases {
 | 
			
		||||
 		serial0 = &uart_AO;
 | 
			
		||||
+		serial1 = &uart_A;
 | 
			
		||||
 		ethernet0 = ðmac;
 | 
			
		||||
 		rtc0 = &rtc;
 | 
			
		||||
 		rtc1 = &vrtc;
 | 
			
		||||
@@ -728,6 +729,12 @@ &toddr_c {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&uart_A {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	pinctrl-0 = <&uart_a_pins>;
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 &uart_AO {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 	pinctrl-0 = <&uart_ao_a_pins>;
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
 | 
			
		||||
@@ -1,37 +0,0 @@
 | 
			
		||||
From 51ded393003a60d3932081114bff142c4c69b293 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <51ded393003a60d3932081114bff142c4c69b293.1646168061.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
References: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Thu, 29 Apr 2021 21:32:43 +0200
 | 
			
		||||
Subject: [PATCH 5/7] arm64: dts: meson: add i2c2 node to ODROID N2/N2+
 | 
			
		||||
 | 
			
		||||
The J2 connectors pinout documents "I2C.SDA0/SCL0" on pin 3 and 5, which
 | 
			
		||||
are connected to GPIOX_17/18. This GPIO allow to mux I2C to the second
 | 
			
		||||
I2C instance. Enable i2c2 and use the appropriate pinmux.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 6 ++++++
 | 
			
		||||
 1 file changed, 6 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
index 738eb0339333..2e9fefc20b19 100644
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -586,6 +586,12 @@ &ir {
 | 
			
		||||
 	linux,rc-map-name = "rc-odroid";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&i2c2 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	pinctrl-0 = <&i2c2_sda_x_pins>, <&i2c2_sck_x_pins>;
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 &i2c3 {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
 | 
			
		||||
@@ -1,43 +0,0 @@
 | 
			
		||||
From 0ad900b2d6e895b1f1788d51e471863743727d71 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <0ad900b2d6e895b1f1788d51e471863743727d71.1646168061.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
References: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
From: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Date: Tue, 1 Mar 2022 21:51:50 +0100
 | 
			
		||||
Subject: [PATCH 6/7] ODROID-C4: arm64/dts: add uart_A node
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi | 9 ++++++++-
 | 
			
		||||
 1 file changed, 8 insertions(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
 | 
			
		||||
index 76ad052fbf0c..690e4823a9d0 100644
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
 | 
			
		||||
@@ -10,8 +10,9 @@
 | 
			
		||||
 
 | 
			
		||||
 / {
 | 
			
		||||
 	aliases {
 | 
			
		||||
-		serial0 = &uart_AO;
 | 
			
		||||
 		ethernet0 = ðmac;
 | 
			
		||||
+		serial0 = &uart_AO;
 | 
			
		||||
+		serial1 = &uart_A;
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	chosen {
 | 
			
		||||
@@ -436,6 +437,12 @@ &tohdmitx {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&uart_A {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+	pinctrl-0 = <&uart_a_pins>;
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 &uart_AO {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 	pinctrl-0 = <&uart_ao_a_pins>;
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
 | 
			
		||||
@@ -1,86 +0,0 @@
 | 
			
		||||
From 105003d49a505e0f0e033a6f3d945f745912c7b1 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <105003d49a505e0f0e033a6f3d945f745912c7b1.1646168061.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
References: <9f8390a715bc58e7423b65a18c4499761c84b819.1646168061.git.stefan@agner.ch>
 | 
			
		||||
From: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Date: Tue, 1 Mar 2022 21:53:32 +0100
 | 
			
		||||
Subject: [PATCH 7/7] ODROID-C4: arm64/dts: add i2c2, i2c3 node
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 .../boot/dts/amlogic/meson-sm1-odroid.dtsi    | 53 +++++++++++++++++++
 | 
			
		||||
 1 file changed, 53 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
 | 
			
		||||
index 690e4823a9d0..85637c1c846b 100644
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
 | 
			
		||||
@@ -11,6 +11,8 @@
 | 
			
		||||
 / {
 | 
			
		||||
 	aliases {
 | 
			
		||||
 		ethernet0 = ðmac;
 | 
			
		||||
+		i2c0 = &i2c2;
 | 
			
		||||
+		i2c1 = &i2c3;
 | 
			
		||||
 		serial0 = &uart_AO;
 | 
			
		||||
 		serial1 = &uart_A;
 | 
			
		||||
 	};
 | 
			
		||||
@@ -373,6 +375,57 @@ &ir {
 | 
			
		||||
 	pinctrl-names = "default";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&i2c2 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	/*
 | 
			
		||||
+	 * 40 Pin Header : SDA(GPIOX.17->3 Pin)
 | 
			
		||||
+	 *		   SCL(GPIOX.18->5 Pin)
 | 
			
		||||
+	 */
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+	pinctrl-0 = <&i2c2_master_pins1>;
 | 
			
		||||
+
 | 
			
		||||
+	/* default 400k */
 | 
			
		||||
+	clock-frequency = <400000>;
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&i2c3 {
 | 
			
		||||
+	/* default i2c clock-frequency is 100Khz */
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	/*
 | 
			
		||||
+	 * 40 Pin Header : SDA(GPIOA.14->27 Pin)
 | 
			
		||||
+	 *		   SCL(GPIOA.15->28 Pin)
 | 
			
		||||
+	 */
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+	pinctrl-0 = <&i2c3_master_pins2>;
 | 
			
		||||
+
 | 
			
		||||
+	/* default 100k */
 | 
			
		||||
+	clock-frequency = <100000>;
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&periphs_pinctrl {
 | 
			
		||||
+	i2c2_master_pins1: i2c2-master-pins1 {
 | 
			
		||||
+		mux {
 | 
			
		||||
+			groups = "i2c2_sda_x",
 | 
			
		||||
+				"i2c2_sck_x";
 | 
			
		||||
+			function = "i2c2";
 | 
			
		||||
+			bias-pull-up;
 | 
			
		||||
+			drive-strength-microamp = <3000>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	i2c3_master_pins2: i2c3-master-pins2 {
 | 
			
		||||
+		mux {
 | 
			
		||||
+			groups = "i2c3_sda_a",
 | 
			
		||||
+				"i2c3_sck_a";
 | 
			
		||||
+			function = "i2c3";
 | 
			
		||||
+			bias-pull-up;
 | 
			
		||||
+			drive-strength-microamp = <3000>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 &pwm_AO_cd {
 | 
			
		||||
 	pinctrl-0 = <&pwm_ao_d_e_pins>;
 | 
			
		||||
 	pinctrl-names = "default";
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,41 @@
 | 
			
		||||
From ca89096189299862a7b2b3123d96fc8bfbe74ce3 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Date: Tue, 14 Apr 2020 14:15:25 +0900
 | 
			
		||||
Subject: [PATCH 13/74] ODROID-C4: arm64/dts: add uart_A node
 | 
			
		||||
 | 
			
		||||
Change-Id: Ib66a03da2fcf39fc459c20c9f98b1baca34dcf5b
 | 
			
		||||
---
 | 
			
		||||
 arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts | 9 ++++++++-
 | 
			
		||||
 1 file changed, 8 insertions(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts
 | 
			
		||||
index 1b749bd340ce..e5d73598c131 100644
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts
 | 
			
		||||
@@ -14,8 +14,9 @@ / {
 | 
			
		||||
 	model = "Hardkernel ODROID-C4";
 | 
			
		||||
 
 | 
			
		||||
 	aliases {
 | 
			
		||||
-		serial0 = &uart_AO;
 | 
			
		||||
 		ethernet0 = ðmac;
 | 
			
		||||
+		serial0 = &uart_AO;
 | 
			
		||||
+		serial1 = &uart_A;
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	chosen {
 | 
			
		||||
@@ -385,6 +386,12 @@ &sd_emmc_c {
 | 
			
		||||
 	vqmmc-supply = <&flash_1v8>;
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&uart_A {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+	pinctrl-0 = <&uart_a_pins>;
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 &uart_AO {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 	pinctrl-0 = <&uart_ao_a_pins>;
 | 
			
		||||
-- 
 | 
			
		||||
2.25.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,85 @@
 | 
			
		||||
From 400645dd70ae5a0efbbce35067c8674d380ed2a7 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Date: Wed, 13 May 2020 10:37:28 +0900
 | 
			
		||||
Subject: [PATCH 21/74] ODROID-C4: arm64/dts: add i2c2, i2c3 node
 | 
			
		||||
 | 
			
		||||
Change-Id: Id75f935111744ff6945791deefef20f897dc98ac
 | 
			
		||||
(cherry picked from commit 3f4b2ffd0905946175c478baa65361695e78e0de)
 | 
			
		||||
---
 | 
			
		||||
 .../boot/dts/amlogic/meson-sm1-odroid-c4.dts  | 53 +++++++++++++++++++
 | 
			
		||||
 1 file changed, 53 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts
 | 
			
		||||
index 831053aa6dff..5988dc5f34d0 100644
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts
 | 
			
		||||
@@ -16,6 +16,8 @@ / {
 | 
			
		||||
 
 | 
			
		||||
 	aliases {
 | 
			
		||||
 		ethernet0 = ðmac;
 | 
			
		||||
+		i2c0 = &i2c2;
 | 
			
		||||
+		i2c1 = &i2c3;
 | 
			
		||||
 		serial0 = &uart_AO;
 | 
			
		||||
 		serial1 = &uart_A;
 | 
			
		||||
 		spi0 = &spicc0;
 | 
			
		||||
@@ -434,6 +436,57 @@ &ir {
 | 
			
		||||
 	linux,rc-map-name = "rc-odroid";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&i2c2 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	/*
 | 
			
		||||
+	 * 40 Pin Header : SDA(GPIOX.17->3 Pin)
 | 
			
		||||
+	 *		   SCL(GPIOX.18->5 Pin)
 | 
			
		||||
+	 */
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+	pinctrl-0 = <&i2c2_master_pins1>;
 | 
			
		||||
+
 | 
			
		||||
+	/* default 400k */
 | 
			
		||||
+	clock-frequency = <400000>;
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&i2c3 {
 | 
			
		||||
+	/* default i2c clock-frequency is 100Khz */
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+
 | 
			
		||||
+	/*
 | 
			
		||||
+	 * 40 Pin Header : SDA(GPIOA.14->27 Pin)
 | 
			
		||||
+	 *		   SCL(GPIOA.15->28 Pin)
 | 
			
		||||
+	 */
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+	pinctrl-0 = <&i2c3_master_pins2>;
 | 
			
		||||
+
 | 
			
		||||
+	/* default 100k */
 | 
			
		||||
+	clock-frequency = <100000>;
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&periphs_pinctrl {
 | 
			
		||||
+	i2c2_master_pins1: i2c2-master-pins1 {
 | 
			
		||||
+		mux {
 | 
			
		||||
+			groups = "i2c2_sda_x",
 | 
			
		||||
+				"i2c2_sck_x";
 | 
			
		||||
+			function = "i2c2";
 | 
			
		||||
+			bias-pull-up;
 | 
			
		||||
+			drive-strength-microamp = <3000>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	i2c3_master_pins2: i2c3-master-pins2 {
 | 
			
		||||
+		mux {
 | 
			
		||||
+			groups = "i2c3_sda_a",
 | 
			
		||||
+				"i2c3_sck_a";
 | 
			
		||||
+			function = "i2c3";
 | 
			
		||||
+			bias-pull-up;
 | 
			
		||||
+			drive-strength-microamp = <3000>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 &pwm_AO_cd {
 | 
			
		||||
 	pinctrl-0 = <&pwm_ao_d_e_pins>;
 | 
			
		||||
 	pinctrl-names = "default";
 | 
			
		||||
-- 
 | 
			
		||||
2.25.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,53 @@
 | 
			
		||||
From c7825747afd8bb975dc918f28e4afe8058a518f3 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
From: Christian Hewitt <christianshewitt@gmail.com>
 | 
			
		||||
Date: Mon, 11 Jan 2021 13:58:31 +0000
 | 
			
		||||
Subject: [PATCH 1/9] arm64: dts: meson: add i2c3/rtc nodes and rtc aliases to
 | 
			
		||||
 ODROID-N2 dtsi
 | 
			
		||||
 | 
			
		||||
Enable the onboard pcf8563 rtc hardware on ODROID N2/N2+ boards via the
 | 
			
		||||
common dtsi. Also add aliases to ensure vrtc does not claim /dev/rtc0.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
 | 
			
		||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
 | 
			
		||||
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
 | 
			
		||||
Link: https://lore.kernel.org/r/20210111135831.2218-1-christianshewitt@gmail.com
 | 
			
		||||
---
 | 
			
		||||
 .../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi     | 14 ++++++++++++++
 | 
			
		||||
 1 file changed, 14 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
index 39a09661c5f6..b78be3e6974d 100644
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -13,6 +13,8 @@ / {
 | 
			
		||||
 	aliases {
 | 
			
		||||
 		serial0 = &uart_AO;
 | 
			
		||||
 		ethernet0 = ðmac;
 | 
			
		||||
+		rtc0 = &rtc;
 | 
			
		||||
+		rtc1 = &vrtc;
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	dioo2133: audio-amplifier-0 {
 | 
			
		||||
@@ -478,6 +480,18 @@ &ir {
 | 
			
		||||
 	linux,rc-map-name = "rc-odroid";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&i2c3 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+
 | 
			
		||||
+	rtc: rtc@51 {
 | 
			
		||||
+		compatible = "nxp,pcf8563";
 | 
			
		||||
+		reg = <0x51>;
 | 
			
		||||
+		wakeup-source;
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 &pwm_ab {
 | 
			
		||||
 	pinctrl-0 = <&pwm_a_e_pins>;
 | 
			
		||||
 	pinctrl-names = "default";
 | 
			
		||||
-- 
 | 
			
		||||
2.32.0
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,51 @@
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0005-arm64-dts-meson-add-saradc-node-to-ODROID-N2-N2.patch
 | 
			
		||||
From 3f2aecc668b172e0c91bf1bfdc78ee18a6bb6645 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <3f2aecc668b172e0c91bf1bfdc78ee18a6bb6645.1622055679.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
References: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
From: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Date: Wed, 7 Apr 2021 04:26:08 +0000
 | 
			
		||||
Subject: [PATCH 05/11] arm64: dts: meson: add saradc node to ODROID N2/N2+
 | 
			
		||||
=======
 | 
			
		||||
From ec3b1240b428c5652ccb7fdadad217a2ff8ab4db Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <ec3b1240b428c5652ccb7fdadad217a2ff8ab4db.1627311993.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
From: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Date: Wed, 7 Apr 2021 04:26:08 +0000
 | 
			
		||||
Subject: [PATCH 2/9] arm64: dts: meson: add saradc node to ODROID N2/N2+
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0002-arm64-dts-meson-add-saradc-node-to-ODROID-N2-N2.patch
 | 
			
		||||
 | 
			
		||||
Add the meson saradc node to the ODROID N2/N2+ common dtsi.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
 | 
			
		||||
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
 | 
			
		||||
Link: https://lore.kernel.org/r/20210407042609.9736-3-christianshewitt@gmail.com
 | 
			
		||||
---
 | 
			
		||||
 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 5 +++++
 | 
			
		||||
 1 file changed, 5 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0005-arm64-dts-meson-add-saradc-node-to-ODROID-N2-N2.patch
 | 
			
		||||
index 5927c4493f5a..194a437b4e3f 100644
 | 
			
		||||
=======
 | 
			
		||||
index b78be3e6974d..8a5e132c4b79 100644
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0002-arm64-dts-meson-add-saradc-node-to-ODROID-N2-N2.patch
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -508,6 +508,11 @@ &pwm_AO_cd {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&saradc {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	vref-supply = <&vddao_1v8>;
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 /* SD card */
 | 
			
		||||
 &sd_emmc_b {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
-- 
 | 
			
		||||
2.31.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,92 @@
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0006-arm64-dts-meson-add-GPIO-line-names-to-ODROID-N2-N2.patch
 | 
			
		||||
From d13c62fab2c91cacda74a9001ea6a6c7d8a9af39 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <d13c62fab2c91cacda74a9001ea6a6c7d8a9af39.1622055679.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
References: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
From: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Date: Wed, 7 Apr 2021 04:26:09 +0000
 | 
			
		||||
Subject: [PATCH 06/11] arm64: dts: meson: add GPIO line names to ODROID N2/N2+
 | 
			
		||||
=======
 | 
			
		||||
From 5ca49a58577f7e9e6f8e0b1cb7c97e756a0e921f Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <5ca49a58577f7e9e6f8e0b1cb7c97e756a0e921f.1627311993.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
From: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Date: Wed, 7 Apr 2021 04:26:09 +0000
 | 
			
		||||
Subject: [PATCH 3/9] arm64: dts: meson: add GPIO line names to ODROID N2/N2+
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0003-arm64-dts-meson-add-GPIO-line-names-to-ODROID-N2-N2.patch
 | 
			
		||||
 | 
			
		||||
Add GPIO line-name identifiers to the ODROID N2/N2+ common dtsi.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
 | 
			
		||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
 | 
			
		||||
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
 | 
			
		||||
Link: https://lore.kernel.org/r/20210407042609.9736-4-christianshewitt@gmail.com
 | 
			
		||||
---
 | 
			
		||||
 .../dts/amlogic/meson-g12b-odroid-n2.dtsi     | 45 +++++++++++++++++++
 | 
			
		||||
 1 file changed, 45 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0006-arm64-dts-meson-add-GPIO-line-names-to-ODROID-N2-N2.patch
 | 
			
		||||
index 194a437b4e3f..fe85aa6da460 100644
 | 
			
		||||
=======
 | 
			
		||||
index 8a5e132c4b79..41b2f9c96b5f 100644
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0003-arm64-dts-meson-add-GPIO-line-names-to-ODROID-N2-N2.patch
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -446,6 +446,51 @@ &frddr_c {
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
 &gpio {
 | 
			
		||||
+	gpio-line-names =
 | 
			
		||||
+		/* GPIOZ */
 | 
			
		||||
+		"", "", "", "", "", "", "", "",
 | 
			
		||||
+		"", "", "", "", "", "", "", "",
 | 
			
		||||
+		/* GPIOH */
 | 
			
		||||
+		"", "", "", "", "", "", "", "",
 | 
			
		||||
+		"",
 | 
			
		||||
+		/* BOOT */
 | 
			
		||||
+		"", "", "", "", "", "", "", "",
 | 
			
		||||
+		"", "", "", "", "", "", "", "",
 | 
			
		||||
+		/* GPIOC */
 | 
			
		||||
+		"", "", "", "", "", "", "", "",
 | 
			
		||||
+		/* GPIOA */
 | 
			
		||||
+		"PIN_44", /* GPIOA_0 */
 | 
			
		||||
+		"PIN_46", /* GPIOA_1 */
 | 
			
		||||
+		"PIN_45", /* GPIOA_2 */
 | 
			
		||||
+		"PIN_47", /* GPIOA_3 */
 | 
			
		||||
+		"PIN_26", /* GPIOA_4 */
 | 
			
		||||
+		"", "", "", "", "", "",
 | 
			
		||||
+		"PIN_42", /* GPIOA_11 */
 | 
			
		||||
+		"PIN_32", /* GPIOA_12 */
 | 
			
		||||
+		"PIN_7",  /* GPIOA_13 */
 | 
			
		||||
+		"PIN_27", /* GPIOA_14 */
 | 
			
		||||
+		"PIN_28", /* GPIOA_15 */
 | 
			
		||||
+		/* GPIOX */
 | 
			
		||||
+		"PIN_16", /* GPIOX_0 */
 | 
			
		||||
+		"PIN_18", /* GPIOX_1 */
 | 
			
		||||
+		"PIN_22", /* GPIOX_2 */
 | 
			
		||||
+		"PIN_11", /* GPIOX_3 */
 | 
			
		||||
+		"PIN_13", /* GPIOX_4 */
 | 
			
		||||
+		"PIN_33", /* GPIOX_5 */
 | 
			
		||||
+		"PIN_35", /* GPIOX_6 */
 | 
			
		||||
+		"PIN_15", /* GPIOX_7 */
 | 
			
		||||
+		"PIN_19", /* GPIOX_8 */
 | 
			
		||||
+		"PIN_21", /* GPIOX_9 */
 | 
			
		||||
+		"PIN_24", /* GPIOX_10 */
 | 
			
		||||
+		"PIN_23", /* GPIOX_11 */
 | 
			
		||||
+		"PIN_8",  /* GPIOX_12 */
 | 
			
		||||
+		"PIN_10", /* GPIOX_13 */
 | 
			
		||||
+		"PIN_29", /* GPIOX_14 */
 | 
			
		||||
+		"PIN_31", /* GPIOX_15 */
 | 
			
		||||
+		"PIN_12", /* GPIOX_16 */
 | 
			
		||||
+		"PIN_3",  /* GPIOX_17 */
 | 
			
		||||
+		"PIN_5",  /* GPIOX_18 */
 | 
			
		||||
+		"PIN_36"; /* GPIOX_19 */
 | 
			
		||||
 	/*
 | 
			
		||||
 	 * WARNING: The USB Hub on the Odroid-N2 needs a reset signal
 | 
			
		||||
 	 * to be turned high in order to be detected by the USB Controller
 | 
			
		||||
-- 
 | 
			
		||||
2.31.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,56 @@
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0007-arm64-dts-meson-g12b-add-power-button-support.patch
 | 
			
		||||
From 25cd545d370b67f5e5e19d93484d378571526da2 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <25cd545d370b67f5e5e19d93484d378571526da2.1622055679.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
References: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Mon, 11 Jan 2021 11:20:48 +0100
 | 
			
		||||
Subject: [PATCH 07/11] arm64: dts: meson: g12b: add power button support
 | 
			
		||||
=======
 | 
			
		||||
From 70e65f906389f7236fe9ad8e1c05dedac0d1988b Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <70e65f906389f7236fe9ad8e1c05dedac0d1988b.1627311993.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Mon, 11 Jan 2021 11:20:48 +0100
 | 
			
		||||
Subject: [PATCH 4/9] arm64: dts: meson: g12b: add power button support
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0004-arm64-dts-meson-g12b-add-power-button-support.patch
 | 
			
		||||
 | 
			
		||||
Add power button support on J2 pin 11 (GPIOX_3 on the SoC side). The
 | 
			
		||||
GPIO is low active, e.g. when connecting with pin 9 (GND) a power
 | 
			
		||||
button press is triggered.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 11 +++++++++++
 | 
			
		||||
 1 file changed, 11 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0007-arm64-dts-meson-g12b-add-power-button-support.patch
 | 
			
		||||
index fe85aa6da460..9b1541ee2273 100644
 | 
			
		||||
=======
 | 
			
		||||
index 41b2f9c96b5f..4b6bb7e74e25 100644
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0004-arm64-dts-meson-g12b-add-power-button-support.patch
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -39,6 +39,17 @@ emmc_pwrseq: emmc-pwrseq {
 | 
			
		||||
 		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
+	gpio-keys-polled {
 | 
			
		||||
+		compatible = "gpio-keys-polled";
 | 
			
		||||
+		poll-interval = <100>;
 | 
			
		||||
+
 | 
			
		||||
+		power-button {
 | 
			
		||||
+			label = "power";
 | 
			
		||||
+			linux,code = <KEY_POWER>;
 | 
			
		||||
+			gpios = <&gpio GPIOX_3 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
 	leds {
 | 
			
		||||
 		compatible = "gpio-leds";
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.31.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,56 @@
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0008-arm64-dts-meson-g12b-add-GPIO-fan-support.patch
 | 
			
		||||
From b94a0698f21a2d8f6623b69fc17fe9491bc22a9b Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <b94a0698f21a2d8f6623b69fc17fe9491bc22a9b.1622055679.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
References: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Mon, 11 Jan 2021 11:38:54 +0100
 | 
			
		||||
Subject: [PATCH 08/11] arm64: dts: meson: g12b: add GPIO fan support
 | 
			
		||||
=======
 | 
			
		||||
From 86d9151effff69d2a8fc2027a31dd60bd8c6eb05 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <86d9151effff69d2a8fc2027a31dd60bd8c6eb05.1627311993.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Mon, 11 Jan 2021 11:38:54 +0100
 | 
			
		||||
Subject: [PATCH 5/9] arm64: dts: meson: g12b: add GPIO fan support
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0005-arm64-dts-meson-g12b-add-GPIO-fan-support.patch
 | 
			
		||||
 | 
			
		||||
Add simple GPIO fan node to support a fan on GPIO J8. Unfortunately the
 | 
			
		||||
pad used to control the fan does not support real PWM, hence the RPM
 | 
			
		||||
cannot be modulated.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 11 +++++++++++
 | 
			
		||||
 1 file changed, 11 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0008-arm64-dts-meson-g12b-add-GPIO-fan-support.patch
 | 
			
		||||
index 9b1541ee2273..8ad7c3ee1aa3 100644
 | 
			
		||||
=======
 | 
			
		||||
index 4b6bb7e74e25..e8a3ede698b5 100644
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0005-arm64-dts-meson-g12b-add-GPIO-fan-support.patch
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -39,6 +39,17 @@ emmc_pwrseq: emmc-pwrseq {
 | 
			
		||||
 		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
+	/*
 | 
			
		||||
+	 * 5V 80x80x10.8mm cooling fan from Hardkernel shop.
 | 
			
		||||
+	 */
 | 
			
		||||
+	fan0: gpio-fan {
 | 
			
		||||
+		#cooling-cells = <2>;
 | 
			
		||||
+		compatible = "gpio-fan";
 | 
			
		||||
+		gpio-fan,speed-map = <0 0 1600 1>;
 | 
			
		||||
+		gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		status = "okay";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
 	gpio-keys-polled {
 | 
			
		||||
 		compatible = "gpio-keys-polled";
 | 
			
		||||
 		poll-interval = <100>;
 | 
			
		||||
-- 
 | 
			
		||||
2.31.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,88 @@
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0009-arm64-dts-meson-g12b-odroid-n2-add-fan-as-cooling-de.patch
 | 
			
		||||
From 4d9f93dbdc93e83ba8ddf01893b3c29cd11a87f9 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <4d9f93dbdc93e83ba8ddf01893b3c29cd11a87f9.1622055679.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
References: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Mon, 11 Jan 2021 15:53:55 +0100
 | 
			
		||||
Subject: [PATCH 09/11] arm64: dts: meson: g12b: odroid-n2: add fan as cooling
 | 
			
		||||
=======
 | 
			
		||||
From f1120f132dbdf2e7f7acf328de55bbdce877d882 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <f1120f132dbdf2e7f7acf328de55bbdce877d882.1627311993.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Mon, 11 Jan 2021 15:53:55 +0100
 | 
			
		||||
Subject: [PATCH 6/9] arm64: dts: meson: g12b: odroid-n2: add fan as cooling
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0006-arm64-dts-meson-g12b-odroid-n2-add-fan-as-cooling-de.patch
 | 
			
		||||
 device
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
Add the GPIO fan as a cooling device for the CPU thermal zone. Since we
 | 
			
		||||
have only full fan speed available with this, set the tripping point to
 | 
			
		||||
65°C which is the highest tripping point which Hardkernel used in their
 | 
			
		||||
downstream kernel.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 .../dts/amlogic/meson-g12b-odroid-n2.dtsi     | 38 +++++++++++++++++++
 | 
			
		||||
 1 file changed, 38 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0009-arm64-dts-meson-g12b-odroid-n2-add-fan-as-cooling-de.patch
 | 
			
		||||
index 8ad7c3ee1aa3..c4052293ea0d 100644
 | 
			
		||||
=======
 | 
			
		||||
index e8a3ede698b5..dd345c6aa4b5 100644
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0006-arm64-dts-meson-g12b-odroid-n2-add-fan-as-cooling-de.patch
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -388,6 +388,44 @@ &clkc_audio {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&cpu_thermal {
 | 
			
		||||
+	trips {
 | 
			
		||||
+		cpu_warm: cpu_warm {
 | 
			
		||||
+			hysteresis = <5000>;
 | 
			
		||||
+			temperature = <65000>;
 | 
			
		||||
+			type = "active";
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	cooling-maps {
 | 
			
		||||
+		map0 {
 | 
			
		||||
+			cooling-device =
 | 
			
		||||
+				<&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 | 
			
		||||
+			trip = <&cpu_warm>;
 | 
			
		||||
+		};
 | 
			
		||||
+		map1 {
 | 
			
		||||
+			trip = <&cpu_passive>;
 | 
			
		||||
+			cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 | 
			
		||||
+		};
 | 
			
		||||
+		map2 {
 | 
			
		||||
+			trip = <&cpu_hot>;
 | 
			
		||||
+			cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 | 
			
		||||
+					 <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 &cpu0 {
 | 
			
		||||
 	cpu-supply = <&vddcpu_b>;
 | 
			
		||||
 	operating-points-v2 = <&cpu_opp_table_0>;
 | 
			
		||||
-- 
 | 
			
		||||
2.31.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,58 @@
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0010-arm64-dts-meson-add-uart_A-node.patch
 | 
			
		||||
From 1eeec94aa6dd6f9900e6213025916eb85f6b3b62 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <1eeec94aa6dd6f9900e6213025916eb85f6b3b62.1622055679.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
References: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
From: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Date: Fri, 27 Mar 2020 17:05:22 +0900
 | 
			
		||||
Subject: [PATCH 10/11] arm64: dts: meson: add uart_A node
 | 
			
		||||
=======
 | 
			
		||||
From dcaf2dc71dd62487eb37561682934414a5795e0e Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <dcaf2dc71dd62487eb37561682934414a5795e0e.1627311993.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
From: Hyeonki Hong <hhk7734@gmail.com>
 | 
			
		||||
Date: Fri, 27 Mar 2020 17:05:22 +0900
 | 
			
		||||
Subject: [PATCH 7/9] arm64: dts: meson: add uart_A node
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0007-arm64-dts-meson-add-uart_A-node.patch
 | 
			
		||||
 | 
			
		||||
The UART_A is available through J3 pin 8/10 and documented to be
 | 
			
		||||
available as UART by default.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 7 +++++++
 | 
			
		||||
 1 file changed, 7 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0010-arm64-dts-meson-add-uart_A-node.patch
 | 
			
		||||
index c4052293ea0d..38a996ed3e19 100644
 | 
			
		||||
=======
 | 
			
		||||
index dd345c6aa4b5..cec346178e3d 100644
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0007-arm64-dts-meson-add-uart_A-node.patch
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -12,6 +12,7 @@
 | 
			
		||||
 / {
 | 
			
		||||
 	aliases {
 | 
			
		||||
 		serial0 = &uart_AO;
 | 
			
		||||
+		serial1 = &uart_A;
 | 
			
		||||
 		ethernet0 = ðmac;
 | 
			
		||||
 		rtc0 = &rtc;
 | 
			
		||||
 		rtc1 = &vrtc;
 | 
			
		||||
@@ -728,6 +729,12 @@ &toddr_c {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&uart_A {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	pinctrl-0 = <&uart_a_pins>;
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 &uart_AO {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 	pinctrl-0 = <&uart_ao_a_pins>;
 | 
			
		||||
-- 
 | 
			
		||||
2.31.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,51 @@
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0011-arm64-dts-meson-add-i2c2-node-to-ODROID-N2-N2.patch
 | 
			
		||||
From 400fce2e1eaab6d04f542eaa0fe3b53fb9d79d82 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <400fce2e1eaab6d04f542eaa0fe3b53fb9d79d82.1622055679.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
References: <0955f7e64f302c5c331b90fd07fc48dfb677eab5.1622055679.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Thu, 29 Apr 2021 21:32:43 +0200
 | 
			
		||||
Subject: [PATCH 11/11] arm64: dts: meson: add i2c2 node to ODROID N2/N2+
 | 
			
		||||
=======
 | 
			
		||||
From d5d2d8b9eb93eab85af12f1844975903a7c5a879 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <d5d2d8b9eb93eab85af12f1844975903a7c5a879.1627311993.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Thu, 29 Apr 2021 21:32:43 +0200
 | 
			
		||||
Subject: [PATCH 8/9] arm64: dts: meson: add i2c2 node to ODROID N2/N2+
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0008-arm64-dts-meson-add-i2c2-node-to-ODROID-N2-N2.patch
 | 
			
		||||
 | 
			
		||||
The J2 connectors pinout documents "I2C.SDA0/SCL0" on pin 3 and 5, which
 | 
			
		||||
are connected to GPIOX_17/18. This GPIO allow to mux I2C to the second
 | 
			
		||||
I2C instance. Enable i2c2 and use the appropriate pinmux.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 6 ++++++
 | 
			
		||||
 1 file changed, 6 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
<<<<<<< HEAD:buildroot-external/board/hardkernel/patches/linux/5.9.16/0011-arm64-dts-meson-add-i2c2-node-to-ODROID-N2-N2.patch
 | 
			
		||||
index 38a996ed3e19..45a8998c4a3a 100644
 | 
			
		||||
=======
 | 
			
		||||
index cec346178e3d..f1c3356c78a0 100644
 | 
			
		||||
>>>>>>> be3afe8b (Update to Linux 5.10.53 (#1475)):buildroot-external/board/hardkernel/patches/linux/5.10.53/0008-arm64-dts-meson-add-i2c2-node-to-ODROID-N2-N2.patch
 | 
			
		||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
 | 
			
		||||
@@ -586,6 +586,12 @@ &ir {
 | 
			
		||||
 	linux,rc-map-name = "rc-odroid";
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+&i2c2 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+	pinctrl-0 = <&i2c2_sda_x_pins>, <&i2c2_sck_x_pins>;
 | 
			
		||||
+	pinctrl-names = "default";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
 &i2c3 {
 | 
			
		||||
 	status = "okay";
 | 
			
		||||
 	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
 | 
			
		||||
-- 
 | 
			
		||||
2.31.1
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,52 @@
 | 
			
		||||
From 19c34c0ceb6302b07e1017c426796c4cf7322d13 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <19c34c0ceb6302b07e1017c426796c4cf7322d13.1627311993.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Mon, 26 Jul 2021 16:59:08 +0200
 | 
			
		||||
Subject: [PATCH 9/9] Revert "of/fdt: Make sure no-map does not remove already
 | 
			
		||||
 reserved regions"
 | 
			
		||||
 | 
			
		||||
U-Boot on Hardkernel ODROID-N2 adds fdt "memreserve" entries alongside
 | 
			
		||||
the reserved-memory nodes present in upstream Linux. This causes
 | 
			
		||||
reserving memory with the no-map flag to fail:
 | 
			
		||||
[    0.000000] OF: fdt: Reserved memory: failed to reserve memory for node 'secmon@5000000': base 0x0000000005000000, size 3 MiB
 | 
			
		||||
 | 
			
		||||
This seems to cause kernel crashes such as:
 | 
			
		||||
[129988.642342] SError Interrupt on CPU4, code 0xbf000000 -- SError
 | 
			
		||||
 | 
			
		||||
Restore the bahavior of Linux kernel 5.9 and older and don't fail
 | 
			
		||||
updating the mapping with no-map.
 | 
			
		||||
 | 
			
		||||
This reverts commit 8a5a75e5e9e55de1cef5d83ca3589cb4899193ef.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 drivers/of/fdt.c | 10 +---------
 | 
			
		||||
 1 file changed, 1 insertion(+), 9 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
 | 
			
		||||
index 57ff31b6b1e4..7ef2246e0b1e 100644
 | 
			
		||||
--- a/drivers/of/fdt.c
 | 
			
		||||
+++ b/drivers/of/fdt.c
 | 
			
		||||
@@ -1149,16 +1149,8 @@ int __init __weak early_init_dt_mark_hotplug_memory_arch(u64 base, u64 size)
 | 
			
		||||
 int __init __weak early_init_dt_reserve_memory_arch(phys_addr_t base,
 | 
			
		||||
 					phys_addr_t size, bool nomap)
 | 
			
		||||
 {
 | 
			
		||||
-	if (nomap) {
 | 
			
		||||
-		/*
 | 
			
		||||
-		 * If the memory is already reserved (by another region), we
 | 
			
		||||
-		 * should not allow it to be marked nomap.
 | 
			
		||||
-		 */
 | 
			
		||||
-		if (memblock_is_region_reserved(base, size))
 | 
			
		||||
-			return -EBUSY;
 | 
			
		||||
-
 | 
			
		||||
+	if (nomap)
 | 
			
		||||
 		return memblock_mark_nomap(base, size);
 | 
			
		||||
-	}
 | 
			
		||||
 	return memblock_reserve(base, size);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.32.0
 | 
			
		||||
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
From 5d2feca5947f84259bae41730ce54231578b37be Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <5d2feca5947f84259bae41730ce54231578b37be.1645627508.git.stefan@agner.ch>
 | 
			
		||||
From 8511fa06c13a9761e53ed72fe7111f5c3e3514a0 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <8511fa06c13a9761e53ed72fe7111f5c3e3514a0.1617731946.git.stefan@agner.ch>
 | 
			
		||||
From: Neil Armstrong <narmstrong@baylibre.com>
 | 
			
		||||
Date: Mon, 2 Sep 2019 15:42:04 +0200
 | 
			
		||||
Subject: [PATCH] HACK: mmc: meson-gx: limit to 24MHz
 | 
			
		||||
@@ -23,5 +23,5 @@ index fcf4f03d1e..6ded4b619b 100644
 | 
			
		||||
 	cfg->name = dev->name;
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.35.1
 | 
			
		||||
2.31.1
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,38 @@
 | 
			
		||||
From e194459c7459a1c6f9d1183e05186d164f0c6715 Mon Sep 17 00:00:00 2001
 | 
			
		||||
Message-Id: <e194459c7459a1c6f9d1183e05186d164f0c6715.1617807077.git.stefan@agner.ch>
 | 
			
		||||
In-Reply-To: <8511fa06c13a9761e53ed72fe7111f5c3e3514a0.1617807077.git.stefan@agner.ch>
 | 
			
		||||
References: <8511fa06c13a9761e53ed72fe7111f5c3e3514a0.1617807077.git.stefan@agner.ch>
 | 
			
		||||
From: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
Date: Thu, 1 Apr 2021 14:33:57 +0200
 | 
			
		||||
Subject: [PATCH 2/2] arm64: dts: meson: odroidc2: readd PHY reset properties
 | 
			
		||||
 | 
			
		||||
The sync of the device tree and dt-bindings from Linux v5.6-rc2
 | 
			
		||||
11a48a5a18c6 ("Linux 5.6-rc2") causes Ethernet to break on some
 | 
			
		||||
ODROID-C2. The PHY seems to need proper reset timing to be functional
 | 
			
		||||
in U-Boot and Linux afterwards. Readd the old PHY reset bindings for
 | 
			
		||||
dwmac until we support the new bindings in the PHY node.
 | 
			
		||||
 | 
			
		||||
Fixes: dd5f2351e99a ("arm64: dts: meson: sync dt and bindings from v5.6-rc2")
 | 
			
		||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm/dts/meson-gxbb-odroidc2.dts | 4 ++++
 | 
			
		||||
 1 file changed, 4 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/arch/arm/dts/meson-gxbb-odroidc2.dts b/arch/arm/dts/meson-gxbb-odroidc2.dts
 | 
			
		||||
index 70fcfb7b06..8b80bbc90b 100644
 | 
			
		||||
--- a/arch/arm/dts/meson-gxbb-odroidc2.dts
 | 
			
		||||
+++ b/arch/arm/dts/meson-gxbb-odroidc2.dts
 | 
			
		||||
@@ -188,6 +188,10 @@
 | 
			
		||||
 	phy-handle = <ð_phy0>;
 | 
			
		||||
 	phy-mode = "rgmii";
 | 
			
		||||
 
 | 
			
		||||
+	snps,reset-gpio = <&gpio GPIOZ_14 0>;
 | 
			
		||||
+	snps,reset-delays-us = <0 10000 1000000>;
 | 
			
		||||
+	snps,reset-active-low;
 | 
			
		||||
+
 | 
			
		||||
 	amlogic,tx-delay-ns = <2>;
 | 
			
		||||
 
 | 
			
		||||
 	mdio {
 | 
			
		||||
-- 
 | 
			
		||||
2.31.1
 | 
			
		||||
 | 
			
		||||
@@ -1,674 +0,0 @@
 | 
			
		||||
CONFIG_SYSVIPC=y
 | 
			
		||||
CONFIG_POSIX_MQUEUE=y
 | 
			
		||||
CONFIG_NO_HZ_IDLE=y
 | 
			
		||||
CONFIG_HIGH_RES_TIMERS=y
 | 
			
		||||
CONFIG_PREEMPT=y
 | 
			
		||||
CONFIG_IRQ_TIME_ACCOUNTING=y
 | 
			
		||||
CONFIG_BSD_PROCESS_ACCT=y
 | 
			
		||||
CONFIG_BSD_PROCESS_ACCT_V3=y
 | 
			
		||||
CONFIG_TASK_XACCT=y
 | 
			
		||||
CONFIG_TASK_IO_ACCOUNTING=y
 | 
			
		||||
CONFIG_IKCONFIG=y
 | 
			
		||||
CONFIG_IKCONFIG_PROC=y
 | 
			
		||||
CONFIG_MEMCG=y
 | 
			
		||||
CONFIG_BLK_CGROUP=y
 | 
			
		||||
CONFIG_CFS_BANDWIDTH=y
 | 
			
		||||
CONFIG_RT_GROUP_SCHED=y
 | 
			
		||||
CONFIG_CGROUP_PIDS=y
 | 
			
		||||
CONFIG_CGROUP_FREEZER=y
 | 
			
		||||
CONFIG_CGROUP_HUGETLB=y
 | 
			
		||||
CONFIG_CPUSETS=y
 | 
			
		||||
CONFIG_CGROUP_DEVICE=y
 | 
			
		||||
CONFIG_CGROUP_CPUACCT=y
 | 
			
		||||
CONFIG_CGROUP_PERF=y
 | 
			
		||||
CONFIG_CGROUP_BPF=y
 | 
			
		||||
CONFIG_USER_NS=y
 | 
			
		||||
CONFIG_SCHED_AUTOGROUP=y
 | 
			
		||||
CONFIG_BLK_DEV_INITRD=y
 | 
			
		||||
CONFIG_BPF_SYSCALL=y
 | 
			
		||||
# CONFIG_COMPAT_BRK is not set
 | 
			
		||||
CONFIG_PROFILING=y
 | 
			
		||||
CONFIG_ARCH_MESON=y
 | 
			
		||||
# CONFIG_CAVIUM_ERRATUM_22375 is not set
 | 
			
		||||
# CONFIG_CAVIUM_ERRATUM_23154 is not set
 | 
			
		||||
# CONFIG_CAVIUM_ERRATUM_27456 is not set
 | 
			
		||||
# CONFIG_CAVIUM_ERRATUM_30115 is not set
 | 
			
		||||
# CONFIG_CAVIUM_TX2_ERRATUM_219 is not set
 | 
			
		||||
# CONFIG_FUJITSU_ERRATUM_010001 is not set
 | 
			
		||||
# CONFIG_HISILICON_ERRATUM_161600802 is not set
 | 
			
		||||
# CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set
 | 
			
		||||
# CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set
 | 
			
		||||
# CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set
 | 
			
		||||
# CONFIG_QCOM_FALKOR_ERRATUM_E1041 is not set
 | 
			
		||||
# CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set
 | 
			
		||||
CONFIG_ARM64_VA_BITS_48=y
 | 
			
		||||
CONFIG_SCHED_MC=y
 | 
			
		||||
CONFIG_HZ_1000=y
 | 
			
		||||
CONFIG_KEXEC=y
 | 
			
		||||
CONFIG_CRASH_DUMP=y
 | 
			
		||||
CONFIG_XEN=y
 | 
			
		||||
CONFIG_COMPAT=y
 | 
			
		||||
CONFIG_ARMV8_DEPRECATED=y
 | 
			
		||||
CONFIG_SWP_EMULATION=y
 | 
			
		||||
CONFIG_CP15_BARRIER_EMULATION=y
 | 
			
		||||
CONFIG_SETEND_EMULATION=y
 | 
			
		||||
CONFIG_RANDOMIZE_BASE=y
 | 
			
		||||
CONFIG_HIBERNATION=y
 | 
			
		||||
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
 | 
			
		||||
CONFIG_CPU_FREQ=y
 | 
			
		||||
CONFIG_CPU_FREQ_STAT=y
 | 
			
		||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
 | 
			
		||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
 | 
			
		||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
 | 
			
		||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
 | 
			
		||||
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
 | 
			
		||||
CONFIG_CPUFREQ_DT=y
 | 
			
		||||
CONFIG_VIRTUALIZATION=y
 | 
			
		||||
CONFIG_KVM=y
 | 
			
		||||
CONFIG_CRYPTO_SHA1_ARM64_CE=y
 | 
			
		||||
CONFIG_CRYPTO_SHA2_ARM64_CE=y
 | 
			
		||||
CONFIG_CRYPTO_SHA512_ARM64_CE=m
 | 
			
		||||
CONFIG_CRYPTO_SHA3_ARM64=m
 | 
			
		||||
CONFIG_CRYPTO_SM3_ARM64_CE=m
 | 
			
		||||
CONFIG_CRYPTO_GHASH_ARM64_CE=y
 | 
			
		||||
CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
 | 
			
		||||
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
 | 
			
		||||
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
 | 
			
		||||
CONFIG_CRYPTO_AES_ARM64_BS=m
 | 
			
		||||
CONFIG_JUMP_LABEL=y
 | 
			
		||||
# CONFIG_SECCOMP is not set
 | 
			
		||||
# CONFIG_GCC_PLUGINS is not set
 | 
			
		||||
CONFIG_MODULES=y
 | 
			
		||||
CONFIG_MODULE_UNLOAD=y
 | 
			
		||||
CONFIG_BLK_DEV_INTEGRITY=y
 | 
			
		||||
CONFIG_BLK_DEV_THROTTLING=y
 | 
			
		||||
CONFIG_PARTITION_ADVANCED=y
 | 
			
		||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
 | 
			
		||||
CONFIG_KSM=y
 | 
			
		||||
CONFIG_MEMORY_FAILURE=y
 | 
			
		||||
CONFIG_TRANSPARENT_HUGEPAGE=y
 | 
			
		||||
CONFIG_CMA=y
 | 
			
		||||
CONFIG_ZSMALLOC=y
 | 
			
		||||
CONFIG_NET=y
 | 
			
		||||
CONFIG_PACKET=y
 | 
			
		||||
CONFIG_UNIX=y
 | 
			
		||||
CONFIG_XFRM_USER=m
 | 
			
		||||
CONFIG_INET=y
 | 
			
		||||
CONFIG_IP_MULTICAST=y
 | 
			
		||||
CONFIG_IP_PNP=y
 | 
			
		||||
CONFIG_IP_PNP_DHCP=y
 | 
			
		||||
CONFIG_IP_PNP_BOOTP=y
 | 
			
		||||
CONFIG_INET_ESP=m
 | 
			
		||||
CONFIG_IPV6_SIT=m
 | 
			
		||||
CONFIG_NETFILTER=y
 | 
			
		||||
CONFIG_BRIDGE_NETFILTER=y
 | 
			
		||||
CONFIG_NF_CONNTRACK=y
 | 
			
		||||
CONFIG_NF_CONNTRACK_EVENTS=y
 | 
			
		||||
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
 | 
			
		||||
CONFIG_NETFILTER_XT_TARGET_LOG=m
 | 
			
		||||
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
 | 
			
		||||
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
 | 
			
		||||
CONFIG_NETFILTER_XT_MATCH_IPVS=y
 | 
			
		||||
CONFIG_IP_VS=y
 | 
			
		||||
CONFIG_IP_VS_RR=y
 | 
			
		||||
CONFIG_IP_VS_NFCT=y
 | 
			
		||||
CONFIG_IP_NF_IPTABLES=y
 | 
			
		||||
CONFIG_IP_NF_FILTER=y
 | 
			
		||||
CONFIG_IP_NF_TARGET_REJECT=m
 | 
			
		||||
CONFIG_IP_NF_NAT=y
 | 
			
		||||
CONFIG_IP_NF_TARGET_MASQUERADE=y
 | 
			
		||||
CONFIG_IP_NF_TARGET_REDIRECT=y
 | 
			
		||||
CONFIG_IP_NF_MANGLE=m
 | 
			
		||||
CONFIG_IP6_NF_IPTABLES=m
 | 
			
		||||
CONFIG_IP6_NF_FILTER=m
 | 
			
		||||
CONFIG_IP6_NF_TARGET_REJECT=m
 | 
			
		||||
CONFIG_IP6_NF_MANGLE=m
 | 
			
		||||
CONFIG_IP6_NF_NAT=m
 | 
			
		||||
CONFIG_IP6_NF_TARGET_MASQUERADE=m
 | 
			
		||||
CONFIG_BRIDGE=y
 | 
			
		||||
CONFIG_BRIDGE_VLAN_FILTERING=y
 | 
			
		||||
CONFIG_VLAN_8021Q=m
 | 
			
		||||
CONFIG_VLAN_8021Q_GVRP=y
 | 
			
		||||
CONFIG_VLAN_8021Q_MVRP=y
 | 
			
		||||
CONFIG_NET_SCHED=y
 | 
			
		||||
CONFIG_NET_CLS_CGROUP=y
 | 
			
		||||
CONFIG_DNS_RESOLVER=y
 | 
			
		||||
CONFIG_CGROUP_NET_PRIO=y
 | 
			
		||||
CONFIG_BPF_JIT=y
 | 
			
		||||
CONFIG_CAN=m
 | 
			
		||||
CONFIG_CAN_VCAN=m
 | 
			
		||||
CONFIG_CAN_SLCAN=m
 | 
			
		||||
CONFIG_CAN_GS_USB=m
 | 
			
		||||
CONFIG_CAN_PEAK_USB=m
 | 
			
		||||
CONFIG_BT=m
 | 
			
		||||
CONFIG_BT_HIDP=m
 | 
			
		||||
CONFIG_BT_LEDS=y
 | 
			
		||||
CONFIG_BT_HCIBTUSB=m
 | 
			
		||||
CONFIG_BT_HCIUART=m
 | 
			
		||||
CONFIG_BT_HCIUART_LL=y
 | 
			
		||||
CONFIG_BT_HCIUART_BCM=y
 | 
			
		||||
CONFIG_CFG80211=m
 | 
			
		||||
CONFIG_CFG80211_WEXT=y
 | 
			
		||||
CONFIG_MAC80211=m
 | 
			
		||||
CONFIG_MAC80211_LEDS=y
 | 
			
		||||
CONFIG_RFKILL=m
 | 
			
		||||
CONFIG_NET_9P=y
 | 
			
		||||
CONFIG_NET_9P_VIRTIO=y
 | 
			
		||||
CONFIG_PCI=y
 | 
			
		||||
CONFIG_PCIEPORTBUS=y
 | 
			
		||||
CONFIG_PCIEAER=y
 | 
			
		||||
CONFIG_PCI_IOV=y
 | 
			
		||||
CONFIG_HOTPLUG_PCI=y
 | 
			
		||||
CONFIG_PCI_HOST_GENERIC=y
 | 
			
		||||
CONFIG_PCIE_DW_PLAT_HOST=y
 | 
			
		||||
# CONFIG_PCI_MESON is not set
 | 
			
		||||
CONFIG_DEVTMPFS=y
 | 
			
		||||
CONFIG_DEVTMPFS_MOUNT=y
 | 
			
		||||
CONFIG_FW_LOADER_USER_HELPER=y
 | 
			
		||||
CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
 | 
			
		||||
CONFIG_SIMPLE_PM_BUS=y
 | 
			
		||||
CONFIG_MTD=y
 | 
			
		||||
CONFIG_MTD_BLOCK=y
 | 
			
		||||
CONFIG_MTD_RAW_NAND=y
 | 
			
		||||
CONFIG_MTD_NAND_DENALI_DT=y
 | 
			
		||||
CONFIG_MTD_SPI_NOR=y
 | 
			
		||||
CONFIG_OF_OVERLAY=y
 | 
			
		||||
CONFIG_ZRAM=y
 | 
			
		||||
CONFIG_BLK_DEV_LOOP=y
 | 
			
		||||
CONFIG_BLK_DEV_NBD=m
 | 
			
		||||
# CONFIG_XEN_BLKDEV_FRONTEND is not set
 | 
			
		||||
CONFIG_BLK_DEV_NVME=m
 | 
			
		||||
CONFIG_NVME_HWMON=y
 | 
			
		||||
CONFIG_SRAM=y
 | 
			
		||||
CONFIG_EEPROM_AT25=m
 | 
			
		||||
CONFIG_RAID_ATTRS=m
 | 
			
		||||
CONFIG_SCSI=y
 | 
			
		||||
# CONFIG_SCSI_PROC_FS is not set
 | 
			
		||||
CONFIG_BLK_DEV_SD=y
 | 
			
		||||
CONFIG_SCSI_SAS_LIBSAS=y
 | 
			
		||||
# CONFIG_SCSI_LOWLEVEL is not set
 | 
			
		||||
CONFIG_MD=y
 | 
			
		||||
CONFIG_BLK_DEV_MD=m
 | 
			
		||||
CONFIG_BLK_DEV_DM=m
 | 
			
		||||
CONFIG_DM_MIRROR=m
 | 
			
		||||
CONFIG_DM_ZERO=m
 | 
			
		||||
CONFIG_NETDEVICES=y
 | 
			
		||||
CONFIG_DUMMY=y
 | 
			
		||||
CONFIG_WIREGUARD=m
 | 
			
		||||
CONFIG_MACVLAN=y
 | 
			
		||||
CONFIG_MACVTAP=m
 | 
			
		||||
CONFIG_IPVLAN=y
 | 
			
		||||
CONFIG_VXLAN=y
 | 
			
		||||
CONFIG_NETCONSOLE=y
 | 
			
		||||
CONFIG_TUN=y
 | 
			
		||||
CONFIG_VETH=y
 | 
			
		||||
CONFIG_VIRTIO_NET=y
 | 
			
		||||
CONFIG_AMD_XGBE=y
 | 
			
		||||
CONFIG_ATL1C=m
 | 
			
		||||
CONFIG_BNX2X=m
 | 
			
		||||
CONFIG_MACB=y
 | 
			
		||||
CONFIG_THUNDER_NIC_PF=y
 | 
			
		||||
CONFIG_HIX5HD2_GMAC=y
 | 
			
		||||
CONFIG_HNS_DSAF=y
 | 
			
		||||
CONFIG_HNS_ENET=y
 | 
			
		||||
CONFIG_HNS3=y
 | 
			
		||||
CONFIG_HNS3_HCLGE=y
 | 
			
		||||
CONFIG_HNS3_ENET=y
 | 
			
		||||
CONFIG_E1000E=y
 | 
			
		||||
CONFIG_IGB=y
 | 
			
		||||
CONFIG_IGBVF=y
 | 
			
		||||
CONFIG_MVMDIO=y
 | 
			
		||||
CONFIG_SKY2=y
 | 
			
		||||
CONFIG_MLX4_EN=m
 | 
			
		||||
CONFIG_MLX5_CORE=m
 | 
			
		||||
CONFIG_MLX5_CORE_EN=y
 | 
			
		||||
CONFIG_MLXFW=m
 | 
			
		||||
CONFIG_QCOM_EMAC=m
 | 
			
		||||
CONFIG_SMC91X=y
 | 
			
		||||
CONFIG_SMSC911X=y
 | 
			
		||||
CONFIG_STMMAC_ETH=m
 | 
			
		||||
CONFIG_MESON_GXL_PHY=y
 | 
			
		||||
CONFIG_MARVELL_PHY=m
 | 
			
		||||
CONFIG_MARVELL_10G_PHY=m
 | 
			
		||||
CONFIG_MICREL_PHY=y
 | 
			
		||||
CONFIG_AT803X_PHY=m
 | 
			
		||||
CONFIG_REALTEK_PHY=m
 | 
			
		||||
CONFIG_ROCKCHIP_PHY=y
 | 
			
		||||
CONFIG_MDIO_BITBANG=y
 | 
			
		||||
CONFIG_MDIO_BUS_MUX_MESON_G12A=y
 | 
			
		||||
CONFIG_MDIO_BUS_MUX_MMIOREG=y
 | 
			
		||||
CONFIG_USB_PEGASUS=m
 | 
			
		||||
CONFIG_USB_RTL8150=m
 | 
			
		||||
CONFIG_USB_RTL8152=m
 | 
			
		||||
CONFIG_USB_LAN78XX=m
 | 
			
		||||
CONFIG_USB_USBNET=m
 | 
			
		||||
CONFIG_USB_NET_DM9601=m
 | 
			
		||||
CONFIG_USB_NET_SR9800=m
 | 
			
		||||
CONFIG_USB_NET_SMSC75XX=m
 | 
			
		||||
CONFIG_USB_NET_SMSC95XX=m
 | 
			
		||||
CONFIG_USB_NET_PLUSB=m
 | 
			
		||||
CONFIG_USB_NET_MCS7830=m
 | 
			
		||||
CONFIG_ATH10K=m
 | 
			
		||||
CONFIG_ATH10K_PCI=m
 | 
			
		||||
CONFIG_BRCMFMAC=m
 | 
			
		||||
CONFIG_MWIFIEX=m
 | 
			
		||||
CONFIG_MWIFIEX_PCIE=m
 | 
			
		||||
CONFIG_RT2X00=m
 | 
			
		||||
CONFIG_RT2500USB=m
 | 
			
		||||
CONFIG_RT73USB=m
 | 
			
		||||
CONFIG_RT2800USB=m
 | 
			
		||||
CONFIG_RT2800USB_RT3573=y
 | 
			
		||||
CONFIG_RT2800USB_RT53XX=y
 | 
			
		||||
CONFIG_RT2800USB_RT55XX=y
 | 
			
		||||
CONFIG_RT2800USB_UNKNOWN=y
 | 
			
		||||
CONFIG_RTL8192CU=m
 | 
			
		||||
CONFIG_WL18XX=m
 | 
			
		||||
CONFIG_WLCORE_SDIO=m
 | 
			
		||||
# CONFIG_XEN_NETDEV_FRONTEND is not set
 | 
			
		||||
CONFIG_INPUT_POLLDEV=m
 | 
			
		||||
CONFIG_INPUT_MATRIXKMAP=y
 | 
			
		||||
CONFIG_INPUT_EVDEV=y
 | 
			
		||||
# CONFIG_KEYBOARD_ATKBD is not set
 | 
			
		||||
CONFIG_KEYBOARD_GPIO=y
 | 
			
		||||
CONFIG_KEYBOARD_GPIO_POLLED=y
 | 
			
		||||
# CONFIG_MOUSE_PS2 is not set
 | 
			
		||||
CONFIG_SERIO_SERPORT=m
 | 
			
		||||
CONFIG_SERIO_AMBAKMI=y
 | 
			
		||||
CONFIG_SERIO_LIBPS2=y
 | 
			
		||||
CONFIG_LEGACY_PTY_COUNT=16
 | 
			
		||||
CONFIG_SERIAL_8250=y
 | 
			
		||||
# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
 | 
			
		||||
CONFIG_SERIAL_8250_CONSOLE=y
 | 
			
		||||
CONFIG_SERIAL_8250_EXTENDED=y
 | 
			
		||||
CONFIG_SERIAL_8250_SHARE_IRQ=y
 | 
			
		||||
CONFIG_SERIAL_8250_DW=y
 | 
			
		||||
CONFIG_SERIAL_OF_PLATFORM=y
 | 
			
		||||
CONFIG_SERIAL_AMBA_PL011=y
 | 
			
		||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
 | 
			
		||||
CONFIG_SERIAL_MESON=y
 | 
			
		||||
CONFIG_SERIAL_MESON_CONSOLE=y
 | 
			
		||||
CONFIG_SERIAL_XILINX_PS_UART=y
 | 
			
		||||
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
 | 
			
		||||
CONFIG_SERIAL_FSL_LPUART=y
 | 
			
		||||
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
 | 
			
		||||
CONFIG_SERIAL_DEV_BUS=y
 | 
			
		||||
CONFIG_VIRTIO_CONSOLE=y
 | 
			
		||||
CONFIG_IPMI_HANDLER=m
 | 
			
		||||
CONFIG_IPMI_DEVICE_INTERFACE=m
 | 
			
		||||
CONFIG_IPMI_SI=m
 | 
			
		||||
CONFIG_HW_RANDOM=y
 | 
			
		||||
CONFIG_HW_RANDOM_CAVIUM=m
 | 
			
		||||
CONFIG_HW_RANDOM_OPTEE=m
 | 
			
		||||
CONFIG_TCG_TPM=y
 | 
			
		||||
CONFIG_TCG_TIS_I2C_INFINEON=y
 | 
			
		||||
CONFIG_I2C_CHARDEV=y
 | 
			
		||||
CONFIG_I2C_MUX_PCA954x=y
 | 
			
		||||
CONFIG_I2C_DESIGNWARE_PLATFORM=y
 | 
			
		||||
CONFIG_I2C_GPIO=m
 | 
			
		||||
CONFIG_I2C_MESON=y
 | 
			
		||||
CONFIG_I2C_RK3X=y
 | 
			
		||||
CONFIG_SPI=y
 | 
			
		||||
CONFIG_SPI_BITBANG=m
 | 
			
		||||
CONFIG_SPI_NXP_FLEXSPI=y
 | 
			
		||||
CONFIG_SPI_MESON_SPICC=m
 | 
			
		||||
CONFIG_SPI_MESON_SPIFC=m
 | 
			
		||||
CONFIG_SPI_PL022=y
 | 
			
		||||
CONFIG_SPI_ROCKCHIP=y
 | 
			
		||||
CONFIG_SPI_SPIDEV=m
 | 
			
		||||
CONFIG_PINCTRL=y
 | 
			
		||||
CONFIG_GENERIC_PINCTRL_GROUPS=y
 | 
			
		||||
CONFIG_PINMUX=y
 | 
			
		||||
CONFIG_GENERIC_PINMUX_FUNCTIONS=y
 | 
			
		||||
CONFIG_PINCONF=y
 | 
			
		||||
CONFIG_GENERIC_PINCONF=y
 | 
			
		||||
CONFIG_PINCTRL_SINGLE=y
 | 
			
		||||
CONFIG_PINCTRL_MESON=y
 | 
			
		||||
CONFIG_PINCTRL_MESON_GXBB=y
 | 
			
		||||
CONFIG_PINCTRL_MESON_GXL=y
 | 
			
		||||
CONFIG_PINCTRL_MESON8_PMX=y
 | 
			
		||||
CONFIG_PINCTRL_MESON_AXG=y
 | 
			
		||||
CONFIG_PINCTRL_MESON_AXG_PMX=y
 | 
			
		||||
CONFIG_PINCTRL_MESON_G12A=y
 | 
			
		||||
CONFIG_PINCTRL_MESON_A1=y
 | 
			
		||||
CONFIG_GPIOLIB=y
 | 
			
		||||
CONFIG_GPIO_SYSFS=y
 | 
			
		||||
CONFIG_GPIO_DWAPB=y
 | 
			
		||||
CONFIG_GPIO_GENERIC_PLATFORM=y
 | 
			
		||||
CONFIG_GPIO_MB86S7X=y
 | 
			
		||||
CONFIG_GPIO_PL061=y
 | 
			
		||||
CONFIG_GPIO_XGENE=y
 | 
			
		||||
CONFIG_GPIO_MAX732X=y
 | 
			
		||||
CONFIG_GPIO_PCA953X=y
 | 
			
		||||
CONFIG_GPIO_PCA953X_IRQ=y
 | 
			
		||||
CONFIG_GPIO_MAX77620=y
 | 
			
		||||
CONFIG_POWER_RESET_BRCMSTB=y
 | 
			
		||||
CONFIG_POWER_RESET_XGENE=y
 | 
			
		||||
CONFIG_POWER_RESET_SYSCON=y
 | 
			
		||||
CONFIG_SYSCON_REBOOT_MODE=y
 | 
			
		||||
CONFIG_BATTERY_SBS=m
 | 
			
		||||
CONFIG_BATTERY_BQ27XXX=y
 | 
			
		||||
CONFIG_SENSORS_GPIO_FAN=y
 | 
			
		||||
CONFIG_SENSORS_LM90=m
 | 
			
		||||
CONFIG_SENSORS_PWM_FAN=m
 | 
			
		||||
CONFIG_SENSORS_INA2XX=m
 | 
			
		||||
CONFIG_SENSORS_INA3221=m
 | 
			
		||||
CONFIG_THERMAL=y
 | 
			
		||||
CONFIG_THERMAL_GOV_USER_SPACE=y
 | 
			
		||||
CONFIG_CPU_THERMAL=y
 | 
			
		||||
CONFIG_DEVFREQ_THERMAL=y
 | 
			
		||||
CONFIG_KHADAS_MCU_FAN_THERMAL=y
 | 
			
		||||
CONFIG_WATCHDOG=y
 | 
			
		||||
CONFIG_ARM_SP805_WATCHDOG=y
 | 
			
		||||
CONFIG_DW_WATCHDOG=y
 | 
			
		||||
CONFIG_MESON_GXBB_WATCHDOG=y
 | 
			
		||||
CONFIG_MESON_WATCHDOG=y
 | 
			
		||||
CONFIG_MFD_BD9571MWV=y
 | 
			
		||||
CONFIG_MFD_AXP20X_I2C=y
 | 
			
		||||
CONFIG_MFD_HI6421_PMIC=y
 | 
			
		||||
CONFIG_MFD_MAX77620=y
 | 
			
		||||
CONFIG_MFD_RK808=y
 | 
			
		||||
CONFIG_MFD_SEC_CORE=y
 | 
			
		||||
CONFIG_MFD_ROHM_BD718XX=y
 | 
			
		||||
CONFIG_MFD_KHADAS_MCU=y
 | 
			
		||||
CONFIG_REGULATOR=y
 | 
			
		||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
 | 
			
		||||
CONFIG_REGULATOR_AXP20X=y
 | 
			
		||||
CONFIG_REGULATOR_BD718XX=y
 | 
			
		||||
CONFIG_REGULATOR_BD9571MWV=y
 | 
			
		||||
CONFIG_REGULATOR_FAN53555=y
 | 
			
		||||
CONFIG_REGULATOR_GPIO=y
 | 
			
		||||
CONFIG_REGULATOR_HI6421V530=y
 | 
			
		||||
CONFIG_REGULATOR_MAX77620=y
 | 
			
		||||
CONFIG_REGULATOR_PFUZE100=y
 | 
			
		||||
CONFIG_REGULATOR_PWM=y
 | 
			
		||||
CONFIG_REGULATOR_RK808=y
 | 
			
		||||
CONFIG_REGULATOR_S2MPS11=y
 | 
			
		||||
CONFIG_REGULATOR_VCTRL=m
 | 
			
		||||
CONFIG_RC_CORE=m
 | 
			
		||||
CONFIG_RC_DECODERS=y
 | 
			
		||||
CONFIG_RC_DEVICES=y
 | 
			
		||||
CONFIG_IR_MESON=m
 | 
			
		||||
CONFIG_MEDIA_CEC_SUPPORT=y
 | 
			
		||||
CONFIG_CEC_MESON_AO=m
 | 
			
		||||
CONFIG_CEC_MESON_G12A_AO=m
 | 
			
		||||
CONFIG_CEC_GPIO=m
 | 
			
		||||
CONFIG_USB_PULSE8_CEC=m
 | 
			
		||||
CONFIG_MEDIA_SUPPORT=y
 | 
			
		||||
CONFIG_MEDIA_CAMERA_SUPPORT=y
 | 
			
		||||
CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
 | 
			
		||||
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
 | 
			
		||||
CONFIG_VIDEO_V4L2_SUBDEV_API=y
 | 
			
		||||
# CONFIG_DVB_NET is not set
 | 
			
		||||
# CONFIG_DVB_DYNAMIC_MINORS is not set
 | 
			
		||||
CONFIG_MEDIA_USB_SUPPORT=y
 | 
			
		||||
CONFIG_USB_VIDEO_CLASS=m
 | 
			
		||||
CONFIG_USB_M5602=m
 | 
			
		||||
CONFIG_USB_STV06XX=m
 | 
			
		||||
CONFIG_USB_GL860=m
 | 
			
		||||
CONFIG_USB_GSPCA_BENQ=m
 | 
			
		||||
CONFIG_USB_GSPCA_CONEX=m
 | 
			
		||||
CONFIG_USB_GSPCA_CPIA1=m
 | 
			
		||||
CONFIG_USB_GSPCA_DTCS033=m
 | 
			
		||||
CONFIG_USB_GSPCA_ETOMS=m
 | 
			
		||||
CONFIG_USB_GSPCA_FINEPIX=m
 | 
			
		||||
CONFIG_USB_GSPCA_JEILINJ=m
 | 
			
		||||
CONFIG_USB_GSPCA_JL2005BCD=m
 | 
			
		||||
CONFIG_USB_GSPCA_KINECT=m
 | 
			
		||||
CONFIG_USB_GSPCA_KONICA=m
 | 
			
		||||
CONFIG_USB_GSPCA_MARS=m
 | 
			
		||||
CONFIG_USB_GSPCA_MR97310A=m
 | 
			
		||||
CONFIG_USB_GSPCA_NW80X=m
 | 
			
		||||
CONFIG_USB_GSPCA_OV519=m
 | 
			
		||||
CONFIG_USB_GSPCA_OV534=m
 | 
			
		||||
CONFIG_USB_GSPCA_OV534_9=m
 | 
			
		||||
CONFIG_USB_GSPCA_PAC207=m
 | 
			
		||||
CONFIG_USB_GSPCA_PAC7302=m
 | 
			
		||||
CONFIG_USB_GSPCA_PAC7311=m
 | 
			
		||||
CONFIG_USB_GSPCA_SE401=m
 | 
			
		||||
CONFIG_USB_GSPCA_SN9C2028=m
 | 
			
		||||
CONFIG_USB_GSPCA_SN9C20X=m
 | 
			
		||||
CONFIG_USB_GSPCA_SONIXB=m
 | 
			
		||||
CONFIG_USB_GSPCA_SONIXJ=m
 | 
			
		||||
CONFIG_USB_GSPCA_SPCA500=m
 | 
			
		||||
CONFIG_USB_GSPCA_SPCA501=m
 | 
			
		||||
CONFIG_USB_GSPCA_SPCA505=m
 | 
			
		||||
CONFIG_USB_GSPCA_SPCA506=m
 | 
			
		||||
CONFIG_USB_GSPCA_SPCA508=m
 | 
			
		||||
CONFIG_USB_GSPCA_SPCA561=m
 | 
			
		||||
CONFIG_USB_GSPCA_SPCA1528=m
 | 
			
		||||
CONFIG_USB_GSPCA_SQ905=m
 | 
			
		||||
CONFIG_USB_GSPCA_SQ905C=m
 | 
			
		||||
CONFIG_USB_GSPCA_SQ930X=m
 | 
			
		||||
CONFIG_USB_GSPCA_STK014=m
 | 
			
		||||
CONFIG_USB_GSPCA_STK1135=m
 | 
			
		||||
CONFIG_USB_GSPCA_STV0680=m
 | 
			
		||||
CONFIG_USB_GSPCA_SUNPLUS=m
 | 
			
		||||
CONFIG_USB_GSPCA_T613=m
 | 
			
		||||
CONFIG_USB_GSPCA_TOPRO=m
 | 
			
		||||
CONFIG_USB_GSPCA_TOUPTEK=m
 | 
			
		||||
CONFIG_USB_GSPCA_TV8532=m
 | 
			
		||||
CONFIG_USB_GSPCA_VC032X=m
 | 
			
		||||
CONFIG_USB_GSPCA_VICAM=m
 | 
			
		||||
CONFIG_USB_GSPCA_XIRLINK_CIT=m
 | 
			
		||||
CONFIG_USB_GSPCA_ZC3XX=m
 | 
			
		||||
CONFIG_USB_PWC=m
 | 
			
		||||
CONFIG_VIDEO_CPIA2=m
 | 
			
		||||
CONFIG_USB_ZR364XX=m
 | 
			
		||||
CONFIG_USB_STKWEBCAM=m
 | 
			
		||||
CONFIG_USB_S2255=m
 | 
			
		||||
CONFIG_VIDEO_USBTV=m
 | 
			
		||||
CONFIG_VIDEO_PVRUSB2=m
 | 
			
		||||
CONFIG_VIDEO_HDPVR=m
 | 
			
		||||
CONFIG_VIDEO_STK1160_COMMON=m
 | 
			
		||||
CONFIG_VIDEO_AU0828=m
 | 
			
		||||
CONFIG_VIDEO_CX231XX=m
 | 
			
		||||
CONFIG_VIDEO_CX231XX_ALSA=m
 | 
			
		||||
CONFIG_VIDEO_CX231XX_DVB=m
 | 
			
		||||
CONFIG_VIDEO_TM6000=m
 | 
			
		||||
CONFIG_VIDEO_TM6000_ALSA=m
 | 
			
		||||
CONFIG_VIDEO_TM6000_DVB=m
 | 
			
		||||
CONFIG_VIDEO_EM28XX=m
 | 
			
		||||
CONFIG_VIDEO_EM28XX_V4L2=m
 | 
			
		||||
CONFIG_VIDEO_EM28XX_ALSA=m
 | 
			
		||||
CONFIG_VIDEO_EM28XX_DVB=m
 | 
			
		||||
CONFIG_MEDIA_PCI_SUPPORT=y
 | 
			
		||||
CONFIG_DRM=y
 | 
			
		||||
CONFIG_DRM_PANEL_SIMPLE=m
 | 
			
		||||
CONFIG_DRM_DW_HDMI_CEC=y
 | 
			
		||||
CONFIG_DRM_MESON=y
 | 
			
		||||
CONFIG_DRM_PL111=m
 | 
			
		||||
CONFIG_DRM_LIMA=m
 | 
			
		||||
CONFIG_DRM_PANFROST=m
 | 
			
		||||
CONFIG_FB_MODE_HELPERS=y
 | 
			
		||||
CONFIG_FB_EFI=y
 | 
			
		||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
 | 
			
		||||
CONFIG_BACKLIGHT_PWM=m
 | 
			
		||||
CONFIG_SOUND=y
 | 
			
		||||
CONFIG_SND=y
 | 
			
		||||
CONFIG_SND_DYNAMIC_MINORS=y
 | 
			
		||||
# CONFIG_SND_PCI is not set
 | 
			
		||||
# CONFIG_SND_SPI is not set
 | 
			
		||||
CONFIG_SND_USB_AUDIO=m
 | 
			
		||||
CONFIG_SND_SOC=y
 | 
			
		||||
CONFIG_SND_MESON_AXG_SOUND_CARD=y
 | 
			
		||||
CONFIG_SND_MESON_GX_SOUND_CARD=y
 | 
			
		||||
CONFIG_SND_SOC_AK4613=m
 | 
			
		||||
CONFIG_SND_SOC_DMIC=m
 | 
			
		||||
CONFIG_SND_SOC_ES7134=m
 | 
			
		||||
CONFIG_SND_SOC_ES7241=m
 | 
			
		||||
CONFIG_SND_SOC_MAX98357A=y
 | 
			
		||||
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
 | 
			
		||||
CONFIG_SND_SOC_SPDIF=m
 | 
			
		||||
CONFIG_SND_SIMPLE_CARD=m
 | 
			
		||||
CONFIG_SND_AUDIO_GRAPH_CARD=m
 | 
			
		||||
CONFIG_HIDRAW=y
 | 
			
		||||
CONFIG_I2C_HID=m
 | 
			
		||||
CONFIG_USB=y
 | 
			
		||||
CONFIG_USB_OTG=y
 | 
			
		||||
CONFIG_USB_XHCI_HCD=y
 | 
			
		||||
CONFIG_USB_EHCI_HCD=y
 | 
			
		||||
CONFIG_USB_EHCI_HCD_PLATFORM=y
 | 
			
		||||
CONFIG_USB_OHCI_HCD=y
 | 
			
		||||
CONFIG_USB_OHCI_HCD_PLATFORM=y
 | 
			
		||||
CONFIG_USB_STORAGE=y
 | 
			
		||||
CONFIG_USB_UAS=y
 | 
			
		||||
CONFIG_USB_MUSB_HDRC=y
 | 
			
		||||
CONFIG_USB_DWC3=y
 | 
			
		||||
CONFIG_USB_DWC2=y
 | 
			
		||||
CONFIG_USB_CHIPIDEA=y
 | 
			
		||||
CONFIG_USB_CHIPIDEA_UDC=y
 | 
			
		||||
CONFIG_USB_CHIPIDEA_HOST=y
 | 
			
		||||
CONFIG_USB_ISP1760=y
 | 
			
		||||
CONFIG_USB_SERIAL=y
 | 
			
		||||
CONFIG_USB_SERIAL_GENERIC=y
 | 
			
		||||
CONFIG_USB_SERIAL_SIMPLE=m
 | 
			
		||||
CONFIG_USB_SERIAL_CH341=m
 | 
			
		||||
CONFIG_USB_SERIAL_CP210X=m
 | 
			
		||||
CONFIG_USB_SERIAL_FTDI_SIO=m
 | 
			
		||||
CONFIG_USB_SERIAL_PL2303=m
 | 
			
		||||
CONFIG_USB_SERIAL_TI=m
 | 
			
		||||
CONFIG_USB_SERIAL_OPTION=m
 | 
			
		||||
CONFIG_USB_HSIC_USB3503=y
 | 
			
		||||
CONFIG_NOP_USB_XCEIV=y
 | 
			
		||||
CONFIG_USB_ULPI=y
 | 
			
		||||
CONFIG_USB_GADGET=y
 | 
			
		||||
CONFIG_USB_BDC_UDC=y
 | 
			
		||||
CONFIG_TYPEC=m
 | 
			
		||||
CONFIG_MMC=y
 | 
			
		||||
CONFIG_MMC_BLOCK_MINORS=32
 | 
			
		||||
CONFIG_MMC_ARMMMCI=y
 | 
			
		||||
CONFIG_MMC_SDHCI=y
 | 
			
		||||
CONFIG_MMC_SDHCI_PLTFM=y
 | 
			
		||||
CONFIG_MMC_SDHCI_OF_ARASAN=y
 | 
			
		||||
CONFIG_MMC_SDHCI_CADENCE=y
 | 
			
		||||
CONFIG_MMC_SDHCI_F_SDH30=y
 | 
			
		||||
CONFIG_MMC_MESON_GX=y
 | 
			
		||||
CONFIG_MMC_SPI=y
 | 
			
		||||
CONFIG_MMC_DW=y
 | 
			
		||||
CONFIG_MMC_DW_EXYNOS=y
 | 
			
		||||
CONFIG_MMC_DW_HI3798CV200=y
 | 
			
		||||
CONFIG_MMC_DW_K3=y
 | 
			
		||||
CONFIG_MMC_SDHCI_XENON=y
 | 
			
		||||
CONFIG_NEW_LEDS=y
 | 
			
		||||
CONFIG_LEDS_CLASS=y
 | 
			
		||||
CONFIG_LEDS_GPIO=y
 | 
			
		||||
CONFIG_LEDS_PWM=y
 | 
			
		||||
CONFIG_LEDS_SYSCON=y
 | 
			
		||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 | 
			
		||||
CONFIG_LEDS_TRIGGER_CPU=y
 | 
			
		||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
 | 
			
		||||
CONFIG_LEDS_TRIGGER_PANIC=y
 | 
			
		||||
CONFIG_LEDS_TRIGGER_AUDIO=m
 | 
			
		||||
CONFIG_EDAC=y
 | 
			
		||||
CONFIG_RTC_CLASS=y
 | 
			
		||||
CONFIG_RTC_DRV_DS1307=m
 | 
			
		||||
CONFIG_RTC_DRV_HYM8563=m
 | 
			
		||||
CONFIG_RTC_DRV_MAX77686=y
 | 
			
		||||
CONFIG_RTC_DRV_RK808=m
 | 
			
		||||
CONFIG_RTC_DRV_PCF8563=y
 | 
			
		||||
CONFIG_RTC_DRV_RX8581=m
 | 
			
		||||
CONFIG_RTC_DRV_S5M=y
 | 
			
		||||
CONFIG_RTC_DRV_DS3232=y
 | 
			
		||||
CONFIG_RTC_DRV_EFI=y
 | 
			
		||||
CONFIG_RTC_DRV_PL031=y
 | 
			
		||||
CONFIG_DMADEVICES=y
 | 
			
		||||
CONFIG_FSL_EDMA=y
 | 
			
		||||
CONFIG_MV_XOR_V2=y
 | 
			
		||||
CONFIG_PL330_DMA=y
 | 
			
		||||
CONFIG_QCOM_HIDMA_MGMT=y
 | 
			
		||||
CONFIG_QCOM_HIDMA=y
 | 
			
		||||
CONFIG_VFIO=y
 | 
			
		||||
CONFIG_VFIO_PCI=y
 | 
			
		||||
CONFIG_VIRTIO_PCI=y
 | 
			
		||||
CONFIG_VIRTIO_BALLOON=y
 | 
			
		||||
CONFIG_VIRTIO_MMIO=y
 | 
			
		||||
# CONFIG_XEN_BALLOON is not set
 | 
			
		||||
# CONFIG_XEN_DEV_EVTCHN is not set
 | 
			
		||||
# CONFIG_XEN_BACKEND is not set
 | 
			
		||||
# CONFIG_XENFS is not set
 | 
			
		||||
# CONFIG_XEN_SYS_HYPERVISOR is not set
 | 
			
		||||
# CONFIG_XEN_GNTDEV is not set
 | 
			
		||||
# CONFIG_XEN_GRANT_DEV_ALLOC is not set
 | 
			
		||||
CONFIG_STAGING=y
 | 
			
		||||
CONFIG_STAGING_GASKET_FRAMEWORK=m
 | 
			
		||||
CONFIG_STAGING_APEX_DRIVER=m
 | 
			
		||||
CONFIG_COMMON_CLK_RK808=y
 | 
			
		||||
CONFIG_COMMON_CLK_CS2000_CP=y
 | 
			
		||||
CONFIG_COMMON_CLK_S2MPS11=y
 | 
			
		||||
CONFIG_CLK_QORIQ=y
 | 
			
		||||
CONFIG_COMMON_CLK_XGENE=y
 | 
			
		||||
CONFIG_COMMON_CLK_PWM=y
 | 
			
		||||
CONFIG_HWSPINLOCK=y
 | 
			
		||||
CONFIG_ARM_SMMU=y
 | 
			
		||||
CONFIG_ARM_SMMU_V3=y
 | 
			
		||||
CONFIG_REMOTEPROC=y
 | 
			
		||||
CONFIG_SOC_BRCMSTB=y
 | 
			
		||||
CONFIG_SOC_TI=y
 | 
			
		||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
 | 
			
		||||
CONFIG_EXTCON_USB_GPIO=y
 | 
			
		||||
CONFIG_MEMORY=y
 | 
			
		||||
CONFIG_IIO=y
 | 
			
		||||
CONFIG_SENSORS_ISL29018=m
 | 
			
		||||
CONFIG_MPL3115=m
 | 
			
		||||
CONFIG_PWM=y
 | 
			
		||||
CONFIG_PWM_MESON=y
 | 
			
		||||
CONFIG_PHY_XGENE=y
 | 
			
		||||
CONFIG_PHY_FSL_IMX8MQ_USB=y
 | 
			
		||||
CONFIG_PHY_QCOM_USB_HS=y
 | 
			
		||||
CONFIG_PHY_SAMSUNG_USB2=y
 | 
			
		||||
CONFIG_MESON_EFUSE=y
 | 
			
		||||
CONFIG_TEE=y
 | 
			
		||||
CONFIG_OPTEE=y
 | 
			
		||||
CONFIG_EXT3_FS=m
 | 
			
		||||
CONFIG_EXT4_FS=y
 | 
			
		||||
CONFIG_EXT4_FS_POSIX_ACL=y
 | 
			
		||||
CONFIG_EXT4_FS_SECURITY=y
 | 
			
		||||
CONFIG_XFS_FS=m
 | 
			
		||||
CONFIG_BTRFS_FS=m
 | 
			
		||||
CONFIG_F2FS_FS=m
 | 
			
		||||
CONFIG_FANOTIFY=y
 | 
			
		||||
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
 | 
			
		||||
CONFIG_QUOTA=y
 | 
			
		||||
CONFIG_AUTOFS4_FS=y
 | 
			
		||||
CONFIG_FUSE_FS=m
 | 
			
		||||
CONFIG_CUSE=m
 | 
			
		||||
CONFIG_OVERLAY_FS=y
 | 
			
		||||
CONFIG_OVERLAY_FS_METACOPY=y
 | 
			
		||||
CONFIG_MSDOS_FS=y
 | 
			
		||||
CONFIG_VFAT_FS=y
 | 
			
		||||
CONFIG_TMPFS=y
 | 
			
		||||
CONFIG_TMPFS_POSIX_ACL=y
 | 
			
		||||
CONFIG_HUGETLBFS=y
 | 
			
		||||
CONFIG_CONFIGFS_FS=y
 | 
			
		||||
CONFIG_EFIVAR_FS=y
 | 
			
		||||
CONFIG_SQUASHFS=y
 | 
			
		||||
CONFIG_SQUASHFS_XATTR=y
 | 
			
		||||
CONFIG_SQUASHFS_LZ4=y
 | 
			
		||||
CONFIG_NFS_FS=m
 | 
			
		||||
CONFIG_NFS_V4=m
 | 
			
		||||
CONFIG_NFS_V4_1=y
 | 
			
		||||
CONFIG_NFS_V4_2=y
 | 
			
		||||
CONFIG_CIFS=m
 | 
			
		||||
CONFIG_CIFS_XATTR=y
 | 
			
		||||
CONFIG_CIFS_POSIX=y
 | 
			
		||||
CONFIG_CIFS_DFS_UPCALL=y
 | 
			
		||||
CONFIG_9P_FS=y
 | 
			
		||||
CONFIG_NLS_CODEPAGE_437=y
 | 
			
		||||
CONFIG_NLS_ISO8859_1=y
 | 
			
		||||
CONFIG_SECURITY=y
 | 
			
		||||
CONFIG_SECURITY_APPARMOR=y
 | 
			
		||||
CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity"
 | 
			
		||||
CONFIG_CRYPTO_ECHAINIV=y
 | 
			
		||||
CONFIG_CRYPTO_CHACHA20=m
 | 
			
		||||
CONFIG_CRYPTO_LZ4=y
 | 
			
		||||
CONFIG_CRYPTO_ANSI_CPRNG=y
 | 
			
		||||
CONFIG_CRYPTO_DEV_VIRTIO=m
 | 
			
		||||
CONFIG_CRYPTO_DEV_AMLOGIC_GXL=y
 | 
			
		||||
CONFIG_INDIRECT_PIO=y
 | 
			
		||||
CONFIG_DMA_CMA=y
 | 
			
		||||
CONFIG_CMA_SIZE_MBYTES=32
 | 
			
		||||
CONFIG_IRQ_POLL=y
 | 
			
		||||
CONFIG_PRINTK_TIME=y
 | 
			
		||||
CONFIG_MAGIC_SYSRQ=y
 | 
			
		||||
CONFIG_PANIC_TIMEOUT=5
 | 
			
		||||
CONFIG_MEMTEST=y
 | 
			
		||||
@@ -1,2 +0,0 @@
 | 
			
		||||
# Uncomment this to enable GPIO support for RPI-RF-MOD/HM-MOD-RPI-PCB
 | 
			
		||||
#overlays=rpi-rf-mod
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
console=tty0 console=ttyAML0,115200n8
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# shellcheck disable=SC2155
 | 
			
		||||
 | 
			
		||||
function hassos_pre_image() {
 | 
			
		||||
    local BOOT_DATA="$(path_boot_dir)"
 | 
			
		||||
    local UBOOT_GXL="${BINARIES_DIR}/u-boot.gxl"
 | 
			
		||||
    local SPL_IMG="$(path_spl_img)"
 | 
			
		||||
 | 
			
		||||
    cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
 | 
			
		||||
    cp "${BINARIES_DIR}/meson-g12b-s922x-khadas-vim3.dtb" "${BOOT_DATA}/meson-g12b-s922x-khadas-vim3.dtb"
 | 
			
		||||
 | 
			
		||||
    cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
 | 
			
		||||
    cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
 | 
			
		||||
 | 
			
		||||
    # SPL
 | 
			
		||||
    create_spl_image
 | 
			
		||||
 | 
			
		||||
    dd if="${UBOOT_GXL}" of="${SPL_IMG}" conv=notrunc bs=1 count=444
 | 
			
		||||
    dd if="${UBOOT_GXL}" of="${SPL_IMG}" conv=notrunc bs=512 skip=1 seek=1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function hassos_post_image() {
 | 
			
		||||
    convert_disk_image_xz
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -1,10 +0,0 @@
 | 
			
		||||
BOARD_ID=khadas-vim3
 | 
			
		||||
BOARD_NAME="Khadas VIM3"
 | 
			
		||||
CHASSIS=embedded
 | 
			
		||||
BOOTLOADER=uboot
 | 
			
		||||
KERNEL_FILE=Image
 | 
			
		||||
BOOT_SYS=mbr
 | 
			
		||||
BOOT_SPL=true
 | 
			
		||||
BOOT_ENV_SIZE=0x2000
 | 
			
		||||
SUPERVISOR_MACHINE=khadas-vim3
 | 
			
		||||
SUPERVISOR_ARCH=aarch64
 | 
			
		||||
@@ -1,104 +0,0 @@
 | 
			
		||||
 | 
			
		||||
###########################################
 | 
			
		||||
 | 
			
		||||
part start mmc ${devnum} 9 mmc_env
 | 
			
		||||
mmc dev ${devnum}
 | 
			
		||||
setenv loadbootstate " \
 | 
			
		||||
    echo 'loading env...'; \
 | 
			
		||||
    mmc read ${ramdisk_addr_r} ${mmc_env} 0x10; \
 | 
			
		||||
    env import -c ${ramdisk_addr_r} 0x2000;"
 | 
			
		||||
 | 
			
		||||
setenv storebootstate " \
 | 
			
		||||
    echo 'storing env...'; \
 | 
			
		||||
    env export -c -s 0x2000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT MACHINE_ID; \
 | 
			
		||||
    mmc write ${ramdisk_addr_r} ${mmc_env} 0x10;"
 | 
			
		||||
 | 
			
		||||
run loadbootstate
 | 
			
		||||
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
 | 
			
		||||
test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
 | 
			
		||||
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
 | 
			
		||||
 | 
			
		||||
# HassOS bootargs
 | 
			
		||||
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor systemd.machine_id=${MACHINE_ID} cgroup_enable=memory fsck.repair=yes"
 | 
			
		||||
 | 
			
		||||
# HassOS system A/B
 | 
			
		||||
setenv bootargs_a "root=PARTUUID=48617373-06 rootfstype=squashfs ro rootwait"
 | 
			
		||||
setenv bootargs_b "root=PARTUUID=48617373-08 rootfstype=squashfs ro rootwait"
 | 
			
		||||
 | 
			
		||||
# Load environment from haos-config.txt
 | 
			
		||||
if test -e mmc ${devnum}:1 haos-config.txt; then
 | 
			
		||||
  fatload mmc ${devnum}:1 ${ramdisk_addr_r} haos-config.txt
 | 
			
		||||
  env import -t ${ramdisk_addr_r} ${filesize}
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Load extraargs
 | 
			
		||||
fileenv mmc ${devnum}:1 ${ramdisk_addr_r} cmdline.txt cmdline
 | 
			
		||||
 | 
			
		||||
# Load device tree
 | 
			
		||||
setenv fdtfile "meson-g12b-s922x-khadas-vim3.dtb"
 | 
			
		||||
echo "Loading standard device tree ${fdtfile}"
 | 
			
		||||
fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile}
 | 
			
		||||
fdt addr ${fdt_addr_r}
 | 
			
		||||
 | 
			
		||||
# load dt overlays
 | 
			
		||||
fdt resize 65536
 | 
			
		||||
for overlay_file in ${overlays}; do
 | 
			
		||||
  if fatload mmc ${devnum}:1 ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then
 | 
			
		||||
    echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
 | 
			
		||||
    fdt apply ${ramdisk_addr_r} || setenv overlay_error "true"
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
if test "${overlay_error}" = "true"; then
 | 
			
		||||
  echo "Error applying DT overlays, restoring original DT"
 | 
			
		||||
  fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile}
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# logical volumes get numbered after physical ones.
 | 
			
		||||
# 1. boot
 | 
			
		||||
# 2. Extended partition
 | 
			
		||||
# 3. Overlay
 | 
			
		||||
# 4. Data
 | 
			
		||||
# 5. KernelA
 | 
			
		||||
# 6. SystemA
 | 
			
		||||
# 7. KernelB
 | 
			
		||||
# 8. SystemB
 | 
			
		||||
# 9. BootInfo
 | 
			
		||||
setenv bootargs
 | 
			
		||||
for BOOT_SLOT in "${BOOT_ORDER}"; do
 | 
			
		||||
  if test "x${bootargs}" != "x"; then
 | 
			
		||||
    # skip remaining slots
 | 
			
		||||
  elif test "x${BOOT_SLOT}" = "xA"; then
 | 
			
		||||
    if test ${BOOT_A_LEFT} -gt 0; then
 | 
			
		||||
      setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1
 | 
			
		||||
      echo "Trying to boot slot A, ${BOOT_A_LEFT} attempts remaining. Loading kernel ..."
 | 
			
		||||
      if load mmc ${devnum}:5 ${kernel_addr_r} Image; then
 | 
			
		||||
          setenv bootargs "${bootargs_hassos} ${bootargs_a} rauc.slot=A ${cmdline}"
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
  elif test "x${BOOT_SLOT}" = "xB"; then
 | 
			
		||||
    if test ${BOOT_B_LEFT} -gt 0; then
 | 
			
		||||
      setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1
 | 
			
		||||
      echo "Trying to boot slot B, ${BOOT_B_LEFT} attempts remaining. Loading kernel ..."
 | 
			
		||||
      if load mmc ${devnum}:7 ${kernel_addr_r} Image; then
 | 
			
		||||
          setenv bootargs "${bootargs_hassos} ${bootargs_b} rauc.slot=B ${cmdline}"
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
if test -n "${bootargs}"; then
 | 
			
		||||
  run storebootstate
 | 
			
		||||
else
 | 
			
		||||
  echo "No valid slot found, resetting tries to 3"
 | 
			
		||||
  setenv BOOT_A_LEFT 3
 | 
			
		||||
  setenv BOOT_B_LEFT 3
 | 
			
		||||
  run storebootstate
 | 
			
		||||
  reset
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
printenv bootargs
 | 
			
		||||
echo "Starting kernel"
 | 
			
		||||
booti ${kernel_addr_r} - ${fdt_addr_r}
 | 
			
		||||
 | 
			
		||||
echo "Boot failed, resetting..."
 | 
			
		||||
reset
 | 
			
		||||
@@ -1,4 +0,0 @@
 | 
			
		||||
CONFIG_DOS_PARTITION=y
 | 
			
		||||
# CONFIG_EFI_PARTITION is not set
 | 
			
		||||
# CONFIG_USB_STORAGE is not set
 | 
			
		||||
CONFIG_DISPLAY_BOARDINFO=y
 | 
			
		||||
							
								
								
									
										10
									
								
								buildroot-external/board/pc/barebox.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								buildroot-external/board/pc/barebox.config
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
CONFIG_MMU=y
 | 
			
		||||
CONFIG_MALLOC_SIZE=0x0
 | 
			
		||||
CONFIG_MALLOC_TLSF=y
 | 
			
		||||
CONFIG_DRIVER_SERIAL_EFI=y
 | 
			
		||||
CONFIG_DRIVER_SERIAL_EFI_STDIO=y
 | 
			
		||||
# CONFIG_SPI is not set
 | 
			
		||||
CONFIG_DISK=y
 | 
			
		||||
CONFIG_DISK_WRITE=y
 | 
			
		||||
CONFIG_FS_EFI=y
 | 
			
		||||
CONFIG_FS_EFIVARFS=y
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
console=tty1
 | 
			
		||||
@@ -3,22 +3,14 @@
 | 
			
		||||
 | 
			
		||||
function hassos_pre_image() {
 | 
			
		||||
    local BOOT_DATA="$(path_boot_dir)"
 | 
			
		||||
    local EFIPART_DATA="${BINARIES_DIR}/efi-part"
 | 
			
		||||
 | 
			
		||||
    mkdir -p "${BOOT_DATA}/EFI/BOOT"
 | 
			
		||||
    mkdir -p "${BOOT_DATA}/EFI/barebox"
 | 
			
		||||
 | 
			
		||||
    cp "${BOARD_DIR}/../grub.cfg" "${EFIPART_DATA}/EFI/BOOT/grub.cfg"
 | 
			
		||||
    cp "${BOARD_DIR}/cmdline.txt" "${EFIPART_DATA}/cmdline.txt"
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" create
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set ORDER="A B"
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set A_OK=1
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set A_TRY=0
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" create
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set ORDER="B A"
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set B_OK=1
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set B_TRY=0
 | 
			
		||||
    cp "${BINARIES_DIR}/barebox.bin" "${BOOT_DATA}/EFI/BOOT/BOOTx64.EFI"
 | 
			
		||||
    cp "${BR2_EXTERNAL_HASSOS_PATH}/bootloader/barebox-state-efi.dtb" "${BOOT_DATA}/EFI/barebox/state.dtb"
 | 
			
		||||
 | 
			
		||||
    cp -r "${EFIPART_DATA}/"* "${BOOT_DATA}/"
 | 
			
		||||
    echo "console=tty1" > "${BOOT_DATA}/cmdline.txt"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,38 +4,14 @@ CONFIG_SCSI_LOWLEVEL=y
 | 
			
		||||
CONFIG_USB_XHCI_HCD=y
 | 
			
		||||
CONFIG_BLK_DEV_NVME=y
 | 
			
		||||
 | 
			
		||||
# CONFIG_E1000E is not set
 | 
			
		||||
 | 
			
		||||
CONFIG_IGB=y
 | 
			
		||||
CONFIG_IGC=m
 | 
			
		||||
 | 
			
		||||
CONFIG_NET_VENDOR_ATHEROS=y
 | 
			
		||||
CONFIG_ATL2=m
 | 
			
		||||
CONFIG_ATL1=m
 | 
			
		||||
CONFIG_ATL1C=m
 | 
			
		||||
CONFIG_ATL1E=m
 | 
			
		||||
CONFIG_ALX=m
 | 
			
		||||
 | 
			
		||||
CONFIG_NET_VENDOR_BROADCOM=y
 | 
			
		||||
CONFIG_B44=m
 | 
			
		||||
CONFIG_BCMGENET=m
 | 
			
		||||
CONFIG_BNX2=m
 | 
			
		||||
CONFIG_TIGON3=m
 | 
			
		||||
CONFIG_BNX2X=m
 | 
			
		||||
CONFIG_BNXT=m
 | 
			
		||||
 | 
			
		||||
CONFIG_WLAN_VENDOR_INTEL=y
 | 
			
		||||
CONFIG_IWL4965=m
 | 
			
		||||
CONFIG_IWL3945=m
 | 
			
		||||
CONFIG_IWLWIFI=m
 | 
			
		||||
CONFIG_IWLDVM=m
 | 
			
		||||
CONFIG_IWLMVM=m
 | 
			
		||||
 | 
			
		||||
CONFIG_SYSFB=y
 | 
			
		||||
 | 
			
		||||
CONFIG_FB=y
 | 
			
		||||
CONFIG_FB_EFI=y
 | 
			
		||||
 | 
			
		||||
CONFIG_DRM=y
 | 
			
		||||
CONFIG_DRM_FBDEV_EMULATION=y
 | 
			
		||||
CONFIG_DRM_I915=m
 | 
			
		||||
CONFIG_DRM_I915_CAPTURE_ERROR=y
 | 
			
		||||
CONFIG_DRM_I915_COMPRESS_ERROR=y
 | 
			
		||||
@@ -48,109 +24,4 @@ CONFIG_MMC_SDHCI_ACPI=y
 | 
			
		||||
CONFIG_MMC_SDHCI_PCI=y
 | 
			
		||||
CONFIG_X86_INTEL_LPSS=y
 | 
			
		||||
 | 
			
		||||
CONFIG_SND_SOC=m
 | 
			
		||||
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SST=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_CATPT=m
 | 
			
		||||
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
 | 
			
		||||
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
 | 
			
		||||
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SKYLAKE=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SKL=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_APL=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_KBL=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_GLK=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_CNL=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_CFL=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_CML_H=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_CML_LP=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
 | 
			
		||||
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_MACH=y
 | 
			
		||||
CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
 | 
			
		||||
CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BYTCR_WM5102_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
 | 
			
		||||
# CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SOF_CS42L42_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SOF_ES8336_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
 | 
			
		||||
CONFIG_SND_SOC_MTK_BTCVSD=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_TOPLEVEL=y
 | 
			
		||||
CONFIG_SND_SOC_SOF_PCI_DEV=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_PCI=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_ACPI=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_ACPI_DEV=m
 | 
			
		||||
# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set
 | 
			
		||||
CONFIG_SND_SOC_SOF=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
 | 
			
		||||
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
 | 
			
		||||
CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_INTEL_COMMON=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_BAYTRAIL=m
 | 
			
		||||
# CONFIG_SND_SOC_SOF_BROADWELL is not set
 | 
			
		||||
CONFIG_SND_SOC_SOF_MERRIFIELD=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_INTEL_APL=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_APOLLOLAKE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_GEMINILAKE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_INTEL_CNL=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_CANNONLAKE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_COFFEELAKE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_COMETLAKE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_INTEL_ICL=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_ICELAKE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_JASPERLAKE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_INTEL_TGL=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_TIGERLAKE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_ALDERLAKE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_HDA_COMMON=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_HDA_LINK=y
 | 
			
		||||
CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
 | 
			
		||||
CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_HDA=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m
 | 
			
		||||
CONFIG_SND_SOC_SOF_XTENSA=m
 | 
			
		||||
 | 
			
		||||
CONFIG_THINKPAD_ACPI=m
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
BOARD_ID=generic-x86-64
 | 
			
		||||
BOARD_NAME="Generic x86-64"
 | 
			
		||||
CHASSIS=embedded
 | 
			
		||||
BOOTLOADER=grub
 | 
			
		||||
BOOTLOADER=barebox
 | 
			
		||||
KERNEL_FILE=bzImage
 | 
			
		||||
BOOT_SYS=efi
 | 
			
		||||
BOOT_SPL=false
 | 
			
		||||
 
 | 
			
		||||
@@ -1,59 +0,0 @@
 | 
			
		||||
set default=99
 | 
			
		||||
set timeout=1
 | 
			
		||||
 | 
			
		||||
set ORDER="A B"
 | 
			
		||||
set A_OK=0
 | 
			
		||||
set B_OK=0
 | 
			
		||||
set A_TRY=0
 | 
			
		||||
set B_TRY=0
 | 
			
		||||
set MACHINE_ID=""
 | 
			
		||||
load_env
 | 
			
		||||
 | 
			
		||||
# select bootable slot
 | 
			
		||||
for SLOT in $ORDER; do
 | 
			
		||||
    if [ "$SLOT" == "A" ]; then
 | 
			
		||||
        INDEX=0
 | 
			
		||||
        OK=$A_OK
 | 
			
		||||
        TRY=$A_TRY
 | 
			
		||||
        A_TRY=1
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "$SLOT" == "B" ]; then
 | 
			
		||||
        INDEX=1
 | 
			
		||||
        OK=$B_OK
 | 
			
		||||
        TRY=$B_TRY
 | 
			
		||||
        B_TRY=1
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "$OK" -eq 1 -a "$TRY" -eq 0 ]; then
 | 
			
		||||
        default=$INDEX
 | 
			
		||||
        break
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# reset booted flags
 | 
			
		||||
if [ "$default" -eq 99 ]; then
 | 
			
		||||
    if [ "$A_OK" -eq 1 -a "$A_TRY" -eq 1 ]; then
 | 
			
		||||
        A_TRY=0
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "$B_OK" -eq 1 -a "$B_TRY" -eq 1 ]; then
 | 
			
		||||
        B_TRY=0
 | 
			
		||||
    fi
 | 
			
		||||
    default=0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
save_env A_TRY A_OK B_TRY B_OK ORDER MACHINE_ID
 | 
			
		||||
 | 
			
		||||
default_cmdline="rootwait zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor systemd.machine_id=$MACHINE_ID cgroup_enable=memory fsck.repair=yes"
 | 
			
		||||
file_env -f ($root)/cmdline.txt cmdline
 | 
			
		||||
 | 
			
		||||
# root is a full HDD/partition definition in GRUB format like hd0,gpt1
 | 
			
		||||
# We extract the part before the comma to then append our own partition index
 | 
			
		||||
# at the end. This is hacky but the best way I found
 | 
			
		||||
regexp --set 1:boothd (.+),.+ ${root}
 | 
			
		||||
 | 
			
		||||
menuentry "Slot A (OK=$A_OK TRY=$A_TRY)" {
 | 
			
		||||
    linux (${boothd},gpt2)/bzImage root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd $default_cmdline $cmdline rauc.slot=A
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
menuentry "Slot B (OK=$B_OK TRY=$B_TRY)" {
 | 
			
		||||
    linux (${boothd},gpt4)/bzImage root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 $default_cmdline $cmdline rauc.slot=B
 | 
			
		||||
}
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
console=ttyS0 console=tty1
 | 
			
		||||
@@ -3,33 +3,24 @@
 | 
			
		||||
 | 
			
		||||
function hassos_pre_image() {
 | 
			
		||||
    local BOOT_DATA="$(path_boot_dir)"
 | 
			
		||||
    local EFIPART_DATA="${BINARIES_DIR}/efi-part"
 | 
			
		||||
 | 
			
		||||
    mkdir -p "${BOOT_DATA}/EFI/BOOT"
 | 
			
		||||
    mkdir -p "${BOOT_DATA}/EFI/barebox"
 | 
			
		||||
 | 
			
		||||
    cp "${BOARD_DIR}/../grub.cfg" "${EFIPART_DATA}/EFI/BOOT/grub.cfg"
 | 
			
		||||
    cp "${BOARD_DIR}/cmdline.txt" "${EFIPART_DATA}/cmdline.txt"
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" create
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set ORDER="A B"
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set A_OK=1
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set A_TRY=0
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" create
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set ORDER="B A"
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set B_OK=1
 | 
			
		||||
    grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set B_TRY=0
 | 
			
		||||
    cp "${BINARIES_DIR}/barebox.bin" "${BOOT_DATA}/EFI/BOOT/BOOTx64.EFI"
 | 
			
		||||
    cp "${BR2_EXTERNAL_HASSOS_PATH}/bootloader/barebox-state-efi.dtb" "${BOOT_DATA}/EFI/barebox/state.dtb"
 | 
			
		||||
 | 
			
		||||
    cp -r "${EFIPART_DATA}/"* "${BOOT_DATA}/"
 | 
			
		||||
    echo "console=ttyS0 console=tty1" > "${BOOT_DATA}/cmdline.txt"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function hassos_post_image() {
 | 
			
		||||
    local hdd_img="$(hassos_image_name img)"
 | 
			
		||||
    local HDD_IMG="$(hassos_image_name img)"
 | 
			
		||||
    local HDD_OVA="$(hassos_image_name ova)"
 | 
			
		||||
    local OVA_DATA="${BINARIES_DIR}/ova"
 | 
			
		||||
 | 
			
		||||
    # Virtual Disk images
 | 
			
		||||
    convert_disk_image_virtual vmdk
 | 
			
		||||
    convert_disk_image_virtual vhdx
 | 
			
		||||
    convert_disk_image_virtual vdi
 | 
			
		||||
    convert_disk_image_virtual qcow2
 | 
			
		||||
    convert_disk_image_virtual
 | 
			
		||||
 | 
			
		||||
    convert_disk_image_zip vmdk
 | 
			
		||||
    convert_disk_image_zip vhdx
 | 
			
		||||
@@ -37,8 +28,14 @@ function hassos_post_image() {
 | 
			
		||||
    convert_disk_image_xz qcow2
 | 
			
		||||
 | 
			
		||||
    # OVA
 | 
			
		||||
    convert_disk_image_ova
 | 
			
		||||
    mkdir -p "${OVA_DATA}"
 | 
			
		||||
    rm -f "${HDD_OVA}"
 | 
			
		||||
 | 
			
		||||
    cp -a "${BOARD_DIR}/home-assistant.ovf" "${OVA_DATA}/home-assistant.ovf"
 | 
			
		||||
    qemu-img convert -O vmdk -o subformat=streamOptimized "${HDD_IMG}" "${OVA_DATA}/home-assistant.vmdk"
 | 
			
		||||
    (cd "${OVA_DATA}" || exit 1; sha256sum --tag home-assistant.* >home-assistant.mf)
 | 
			
		||||
    tar -C "${OVA_DATA}" --owner=root --group=root -cf "${HDD_OVA}" home-assistant.ovf home-assistant.vmdk home-assistant.mf
 | 
			
		||||
 | 
			
		||||
    # Cleanup
 | 
			
		||||
    rm -f "${hdd_img}"
 | 
			
		||||
    rm -f "${HDD_IMG}"
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -53,12 +53,12 @@
 | 
			
		||||
      </Item>
 | 
			
		||||
      <Item>
 | 
			
		||||
        <rasd:Address>0</rasd:Address>
 | 
			
		||||
        <rasd:Caption>SCSIController</rasd:Caption>
 | 
			
		||||
        <rasd:Description>SCSI Controller</rasd:Description>
 | 
			
		||||
        <rasd:ElementName>SCSIController</rasd:ElementName>
 | 
			
		||||
        <rasd:Caption>sataController0</rasd:Caption>
 | 
			
		||||
        <rasd:Description>SATA Controller</rasd:Description>
 | 
			
		||||
        <rasd:ElementName>sataController0</rasd:ElementName>
 | 
			
		||||
        <rasd:InstanceID>3</rasd:InstanceID>
 | 
			
		||||
        <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>
 | 
			
		||||
        <rasd:ResourceType>6</rasd:ResourceType>
 | 
			
		||||
        <rasd:ResourceSubType>AHCI</rasd:ResourceSubType>
 | 
			
		||||
        <rasd:ResourceType>20</rasd:ResourceType>
 | 
			
		||||
      </Item>
 | 
			
		||||
      <Item ovf:required="false">
 | 
			
		||||
        <rasd:Address>0</rasd:Address>
 | 
			
		||||
@@ -136,7 +136,7 @@
 | 
			
		||||
        <RTC localOrUTC="UTC"/>
 | 
			
		||||
      </Hardware>
 | 
			
		||||
      <StorageControllers>
 | 
			
		||||
        <StorageController name="LsiLogic" type="LsiLogic" PortCount="16" useHostIOCache="true" Bootable="true">
 | 
			
		||||
        <StorageController name="SATA" type="AHCI" PortCount="1">
 | 
			
		||||
          <AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">
 | 
			
		||||
            <Image uuid="{5f042839-c478-43d9-9eb0-fd8a902146ec}"/>
 | 
			
		||||
          </AttachedDevice>
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user