From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) by mx.groups.io with SMTP id smtpd.web10.1559.1588274359718683728 for ; Thu, 30 Apr 2020 12:19:19 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rOmakk0O; spf=pass (domain: gmail.com, ip: 209.85.222.193, mailfrom: andrey.warkentin@gmail.com) Received: by mail-qk1-f193.google.com with SMTP id i136so2857231qke.10 for ; Thu, 30 Apr 2020 12:19:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=aWQ6EluvaKyrjLk4nXsTZJAhXwNgLG1uFrThDJUHUgE=; b=rOmakk0OuvEahENa0MYy2++0G9EfInMjE1ZRpykhbC6qLA6V0vXW1wCHQsJ21xnsoz Jd9w3E2pCzPgLT7Q0XSaCun1shl1yzFHjvUrOH8LqTNsN95DJk08KrCVSO8EGF1f/gwr vuZth+O7FiCbX5Cv6mtFmKiJCqh/DbZwhaLIjiwEZ5ZBQ1H9W1b6P92Wbp4l0Emaeo4A IuU2nMRwkuLUUvFsWaTSDnDDCK7cFbjSFQTFzklBvrdXaaAQ0jil8WY53CHnWXGTbaS9 CpDlByP2EWthcapt5kmAjAVw+oD6kRXW1qNbGwOZNzRi/rrmTiqtCfCUx5rg4XFWuHtm hxhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=aWQ6EluvaKyrjLk4nXsTZJAhXwNgLG1uFrThDJUHUgE=; b=OjrI2tXOnTIe+GMnzAtUGBvTBIgYpLs78qDQuA02KKFAa7flMPvOydS2JWb8RXzO7J 3OmJop+RIFGIMkysFU5jm+/ZS4Wf8hO8vf1BVPA0upPBbzoqE8OpVnJQ0vr8hIeDqFtn 7c4620lRIKlqaCBeMDx3erwrgxWBBd0wsLqbiSo8wyG/o1higj240zJYxDNTTIH7Lx8A eh3K2YL99lmNIRDnm7LQOAQlkO2XlCC3Z1vlMDyuTHkbX6NTVUQSdpJdTg2aSBMIblkJ eQY1pda7JoE7uUpLBTQ4Xe2q+FSF9FDQcrv/PdGwoWE/E5+CZu1QQ8KI8H0aPX0t/3Mv rrFw== X-Gm-Message-State: AGi0PuYGE0s0ti14bj6m2ctac/BwfT7e+L6TcCNX9QVK2Ztj5CWaincq VEzucwjNOVgJvpGI0QkiY8mOGmoqCT0= X-Google-Smtp-Source: APiQypKKsolF4LcZXbfPXThxcRuGz534oUWSDgnXC2DXjTVhjewiw3ulhnAfas5vK8Out2xc0GJdDw== X-Received: by 2002:a05:620a:88f:: with SMTP id b15mr21739qka.118.1588274358406; Thu, 30 Apr 2020 12:19:18 -0700 (PDT) Return-Path: Received: from localhost.localdomain (c-98-214-99-181.hsd1.il.comcast.net. [98.214.99.181]) by smtp.gmail.com with ESMTPSA id d188sm778733qkg.59.2020.04.30.12.19.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2020 12:19:18 -0700 (PDT) From: "Andrei Warkentin" To: devel@edk2.groups.io Cc: ard.biesheuvel@arm.com, leif@nuviainc.com, pete@akeo.ie, philmd@redhat.com Subject: [edk2-platforms][PATCH 2/2] RPi: update Pi3 and Pi4 readmes with correct info on FDT handling Date: Thu, 30 Apr 2020 12:19:01 -0700 Message-Id: <20200430191901.89372-3-andrey.warkentin@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200430191901.89372-1-andrey.warkentin@gmail.com> References: <20200430191901.89372-1-andrey.warkentin@gmail.com> Now that Pi 3 FDT handling is fixed, let's update the docs. Furthermore, let's simplify - be proscriptive about the minimal supported config.txt configuration. Also, fix some factual mistakes: - device_tree= override is not mandatory when device_tree_address= is used. Not using it means start.elf can chose the right one for the variant. - device_tree= override is not mandatory for dtoverlay use. Signed-off-by: Andrei Warkentin --- Platform/RaspberryPi/RPi3/Readme.md | 38 +++++++++++++------- Platform/RaspberryPi/RPi4/Readme.md | 24 +++++++------ 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/Platform/RaspberryPi/RPi3/Readme.md b/Platform/RaspberryPi/RPi3/Readme.md index f5d25b50..f19d59d8 100644 --- a/Platform/RaspberryPi/RPi3/Readme.md +++ b/Platform/RaspberryPi/RPi3/Readme.md @@ -56,23 +56,30 @@ Build instructions from the top level edk2-platforms Readme.md apply. 1. Format a uSD card as FAT32 2. Copy the generated `RPI_EFI.fd` firmware onto the partition 3. Download and copy the following files from https://github.com/raspberrypi/firmware/tree/master/boot + - `bcm2710-rpi-3-b.dtb` (for Pi 3B) + - `bcm2710-rpi-3-b-plus.dtb (for Pi 3B+) + - `bcm2710-rpi-2-b.dtb` (for Pi 2B v1.2) + - `bcm2710-rpi-cm3.dtb` (for Pi CM3) - `bootcode.bin` - `fixup.dat` - `start.elf` + - `overlays/miniuart-bt.dtbo` or `overlays/disable-bt.dtbo` (Optional) 4. Create a `config.txt` with the following content: ``` arm_control=0x200 enable_uart=1 armstub=RPI_EFI.fd - disable_commandline_tags=1 + disable_commandline_tags=2 + device_tree_address=0x1f0000 + device_tree_end=0x200000 ``` - Additionally, if you want to use PL011 instead of the miniUART, you can add the lines: + If you want to use PL011 instead of the miniUART on your Pi 3B/3B+, you can add the lines: ``` - device_tree_address=0x10000 - device_tree_end=0x20000 - device_tree=bcm2710-rpi-3-b[-plus].dtb dtoverlay=miniuart-bt ``` + Note: doing so requires `miniuart-bt.dbto` to have been copied into an `overlays/` + directory on the uSD card. Alternatively, you may use `disable-bt` instead of + `miniuart-bt` if you don't require Bluetooth. 5. Insert the uSD card and power up the Pi. Note that if you have a model 3+ or a model 3 where you enabled USB boot through OTP @@ -92,21 +99,26 @@ in the `TrustedFirmware/` directory from `edk2-non-osi`. ## Custom Device Tree -The default Device Tree included in the firmware is the one for a Raspberry Pi 3 Model B (not B+). -If you want to use a different Device Tree, to boot a Pi 3 Model B+ for instance (for which a -DTB is also provided under `DeviceTree/`), you should copy the relevant `.dtb` into the root of +By default, UEFI will use the device tree loaded by the VideoCore firmware. This +depends on the model/variant, and relies on the presence on specific files on your boot media. +E.g.: + - `bcm2710-rpi-3-b.dtb` (for Pi 3B) + - `bcm2710-rpi-3-b-plus.dtb (for Pi 3B+) + - `bcm2710-rpi-2-b.dtb` (for Pi 2B v1.2) + - `bcm2710-rpi-cm3.dtb` (for Pi CM3) + +You can override the DTB and provide a custom one. Copy the relevant `.dtb` into the root of the SD or USB, and then edit your `config.txt` so that it looks like: ``` (...) disable_commandline_tags=2 -device_tree_address=0x10000 -device_tree_end=0x20000 -device_tree=bcm2710-rpi-3-b-plus.dtb +device_tree_address=0x1f0000 +device_tree_end=0x200000 +device_tree=your_fdt_file.dtb ``` -Note: the address range **must** be `[0x10000:0x20000]`. -`dtoverlay` and `dtparam` parameters are also supported **when** providing a Device Tree`. +Note: the address range **must** be `[0x1f0000:0x200000]`. `dtoverlay` and `dtparam` parameters are also supported. ## Custom `bootargs` diff --git a/Platform/RaspberryPi/RPi4/Readme.md b/Platform/RaspberryPi/RPi4/Readme.md index 17d02e9e..62a63c4c 100644 --- a/Platform/RaspberryPi/RPi4/Readme.md +++ b/Platform/RaspberryPi/RPi4/Readme.md @@ -54,18 +54,17 @@ Build instructions from the top level edk2-platforms Readme.md apply. enable_uart=1 enable_gic=1 armstub=RPI_EFI.fd - disable_commandline_tags=1 + disable_commandline_tags=2 + device_tree_address=0x1f0000 + device_tree_end=0x200000 ``` Additionally, if you want to use PL011 instead of the miniUART, you can add the lines: ``` - device_tree_address=0x1f0000 - device_tree_end=0x200000 - device_tree=bcm2711-rpi-4-b.dtb dtoverlay=miniuart-bt ``` - Note that doing so requires `miniuart-bt.dbto` to have been copied into an `overlays/` + Note: doing so requires `miniuart-bt.dbto` to have been copied into an `overlays/` directory on the uSD card. Alternatively, you may use `disable-bt` instead of - `miniuart-bt` if you don't require BlueTooth. + `miniuart-bt` if you don't require Bluetooth. 5. Insert the uSD card and power up the Pi. # Notes @@ -81,18 +80,23 @@ in the `TrustedFirmware/` directory from `edk2-non-osi`. ## Device Tree -You can pass a custom Device Tree and overlays using the following: +By default, UEFI will use the device tree loaded by the VideoCore firmware. This +depends on the model/variant, and relies on the presence on specific files on your boot media. +E.g.: + - `bcm2711-rpi-4-b.dtb` (for Pi 4B) + +You can override the DTB and provide a custom one. Copy the relevant `.dtb` into the root of +the SD or USB, and then edit your `config.txt` so that it looks like: ``` (...) disable_commandline_tags=2 device_tree_address=0x1f0000 device_tree_end=0x200000 -device_tree=bcm2711-rpi-4-b.dtb +device_tree=your_fdt_file.dtb ``` -Note: the address range **must** be `[0x1f0000:0x200000]`. -`dtoverlay` and `dtparam` parameters are also supported **when** providing a Device Tree`. +Note: the address range **must** be `[0x1f0000:0x200000]`. `dtoverlay` and `dtparam` parameters are also supported. ## Custom `bootargs` -- 2.17.1