-
Notifications
You must be signed in to change notification settings - Fork 5.2k
aarch64 bcm2711_defconfig fails to get to early console #3032
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
This happens both on current rpi-4.19.y (e8a66b4) with firmware from raspberrypi/firmware@bcf40b5 and raspberrypi-kernel_1.20190620-1 (883a1a5) with firmware from 1.20190620+1 (raspberrypi/firmware@88ca908). |
2711 v8 support is a work in progress. In particular, the v8 ARM stubs need GIC support. |
Isn't early console initialized before the GIC? |
Perhaps, but the L2 cache latencies need to be set before either of them. |
OK... How do I reproduce the results from cdb78ce? Is it enough to set |
@pelwell I see that raspberrypi/tools@7f4a937#diff-d9d684ceaf48229906f8a534b4cac276 includes gic support for v8 arm stubs. Isn't this included? |
It's not built into the firmware yet, but if you build it yourself and add |
That was what I suspected. Thanks. I"ll try that. Are there any other known issues even with this stub added? |
Not that I'm aware of, but as you can tell this isn't one of the use cases we tested pre-launch. The two related config.txt settings are |
I can confirm that the 64-bit kernel boots having the following in the config.txt:
I used Yocto and meta-raspberrypi (master branches) with some additions to have a raspberrypi4-64 machine and building the kernel and using the firmwares in the head of its branches (rpi-4.19.y and master). The tools/armstubs I had to compile separately to produce the |
Hi @diegosueiro. You'll have this in meta-raspberrypi master today. Also, I don't think you need the device tree set. Also I'd expect kernel8 to be picked up automatically too. |
I was just extra cautious with the settings. 😉 |
@diegosueiro have you limit the total memory as well? |
@agherzan, as far as I remember I haven't touch any memory configuration. |
@diegoherranz Do you happen to have a 1G board? Also, when you tested, did it mount the rootfs and boot the distro? |
@agherzan, yes I'm using the 1GB and I have the full system booted. But I'm using systemd instead of sysvinit. I can send you my changes later. |
@pelwell Do you have any idea why kernel will hang at waiting for the rootfs?
|
Is this with >1GB? The SDHCI controller only sees the bottom 1GB of RAM. There may be a way of telling Linux about this restriction, but at the time I played with the 64-bit kernel I couldn't make it work without artificially limiting the RAM. |
@pelwell It is indeed on a 4G. When you say that you only made it work with limiting the ram, did you use |
I used |
That's what I assumed but sadly I get this with that setting on 1024. |
Confirmed same on my Pi 4 2GB ("mmc1: queuing unknown CIS tuple 0x80"), with bcm2711_defconfig. total_mem=1024 doesn't seem to have an effect on MMC. I also tried putting the rootfs on a USB flash drive, which it does find:
but doesn't seem to mount as root despite e.g. CONFIG_USB_STORAGE being included. I haven't debugged beyond that. Edit: passing root=/dev/sda1 works. Huh. |
Thanks all for the hints in this thread. Have used it to bring the gentoo-on-rpi3-64bit userland up on an RPi4 (brief notes here). |
Nice work, and thanks for sharing! If anyone figures out how to persuade the SD interface to work in a 2GB or 4GB system before we get round to it then please share for the good of all Pi 4 users. The solution will be a software configuration change that enables software bounce buffers rather than finding a hardware switch - there is no magic bit that will create the missing address lines. |
This driver is used in the device tree for the emmc2 node. See raspberrypi#3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See raspberrypi#3032 Signed-off-by: Andrei Gherzan <[email protected]>
@j-selby Based on lines 3558-3572 of sdhci.c, I believe that @pcwalton is correct; the quirk flags disable DMA and revert to PIO:
|
@github-usr-name my understanding is that it falls back anyway, effectively just hiding the error logging. Besides, disabling DMA is obviously not a long term fix. |
@j-selby We agree that disabling DMA [for the SDHC] is not a long term fix, but as a short-term workaround it's better than nothing IMO and results in a less broken system. Limiting the DMA address space is clearly the right solution, but I lack the knowledge to do that. Respectfully, your understanding doesn't match the code - refer to the snippet above. When the quirk is in effect the kernel never tries to use DMA; without it, DMA is attempted for each and every access before falling back to PIO. As a result, when |
@github-usr-name well, obviously there are performance improvements from not attempting an invalid operation continuously - I never said that that wasn't the case. There are artificial delays added with the console spamming going on. My point was that a lot of the solutions posed already are all achieving the same thing fundamentally. |
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
Slightly OT (apologies), but I have just released a pair of weekly autobuilds for the Each kernel release tarball currently provides the following files:
Full details on the project pages linked above.
Best, sakaki
|
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
Fixes WiFi regression on RPi4; see e.g. raspberrypi/linux#3032 (comment) Thanks to @agherzan
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
- firmware: camera/image_encode: Add timestamp to frames encoded with image_encode See: raspberrypi/linux#2351 - firmware: camera_subsystem: Clean up disable_camera_led handling - firmware: smservice: Add defines for VPU allocations - smservice: Add support for reporting the supported version to the host - firmware: Camplus: cdi: Remove requirement for calibration functions - firmware: isp: Reinstate lres shift parameter accidentally dropped with gamma changes See: #1108 - firmware: mmal_ril: List all 4 Bayer orders if the IL component says it supports Bayer - firmware: raspivid: Stop --raw option resetting --raw-format to YUV See: https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=189830&start=25#p1432589 - firmware: Fixed up overflow in microsecond timer See: raspberrypi/userland#535 - firmware: smservice: Avoid a double free - firmware: arm_loader/display: All the framebuffer allocation to be made on the ARM - firmware: isp_tuners: Fix memory leak in error path - firmware: testc: Fix dps parsing - firmware: camera_subsystem: Fix hardware sync pulses off disable_camera_led - firmware: Replace the remaining direct users of C(mask_gpu_interrupt[0|1]) - firmware: arm_display: Kick transposer for the rainbow screen if required - firmware: dispmanx: Do not allow transpose if using Full KMS See: raspberrypi/linux#2891 - firmware: Revert: arm_loader/display: All the framebuffer allocation to be made on the ARM - firmware: arm_loader: Further conditionals for passing in a frame buffer - firmware: di_adv: Drop back to fast if QPUs are masked off - firmware: Fix AWB exception bug - firmware: Updates for Pi4 - firmware: Add missing licence file - firmware: 2711: CORE, EMMC & BVB clock updates for WiFi / 4Kp60 - firmware: 711: Use boost instead of fixed freq for 4Kp60 - firmware: hvs: Emulate the EOLn interrupt with a timer reset from VSTART See: #1154 - firmware: Add support for Rec2020 colour space in vc_image, IL, and MMAL - firmware: Fix composite mode on devices up to Pi3B+ See: #1166 - firmware: Fixes for core_freq_min causing failure on HDMI1 See: http://git/vc4/vc4/merge_requests/529 - firmware: hdmi: Don't release previous boost until mode set is complete See: #1159 - firmware: bcm_host: Adjust for 64-bit physical addresses See: #1161 - firmware: arm_loader: Shrink most stubs back to 256 bytes, add arm64 GIC stub See: raspberrypi/linux#3032 - firmware: arm_dispmanx: Add support for setting the colour encoding - firmware: dmalib: Fix Lite channel interrupt usage, and macro name - firmware: Force overscan off when using LCDs See: #1173 - firmware: cec: Fix crash when using CEC with HDMI1 - firmware: arm_display: Fix race condition initialising CEC - firmware: hdmi: Always use boost frequency for initial mode set See: #1159 - firmware: AWB: Fix usage for IR operation See: #1167 - firmware: arm_loader: Support CLOCK_EMMC2 from GET_CLOCK_RATE See: #1179 - firmware: arm_loader: Force word alignment for the DTB See: #1175 - firmware: clock_2711: don't set reserved values for KA in PLL KAIP registers - firmware: Assorted minor fixes for tvservice -o - firmware: Rename hdmi_enable_4k to hdmi_enable_4kp60 - firmware: Revert: clock_2711: don't set reserved values for KA in PLL KAIP registers - firmware: dispmanx: Fix handling of disable_overscan to not disable it totally See: raspberrypi/linux#3059 - firmware: power: Enable/disable H264 and ISP clocks with domain - firmware: arm_loader: arm_64bit=0 should disable loading of kernel8.img - firmware: dt-blob: CM has no activity LED - firmware: AWB updates See: #1167 -firmware: Change order of display remapping for default display number - firmware: AWB: Set default number of stats regions for RPi AWB See: #1198 - firmware: Fix composite interrupt HVS channel - firmware: scalarlib: Fix width setting for SCALERLIB_PIXEL_FORMAT_YUV10COL - firmware: vcmailbox: Add a new SET_AUDIO_LDO_STATE mailbox command - firmware: Add mailbox call to report the HDMI timings - firmware: H264: Set the decoder cache AXI burst length to the same as the encoder - firmware: gencmd: Fix gencmd max result length - firmware: bootloader_config: New gencmd to read the EEPROM config - firmware: pwm_audio: Use PWM1 on BCM2838 unless remapped See: #1178 - firmware: Fixups for missing code changes from Pi4 branch See: #1201 - firmware: pwm_audio: Use the correct DREQs on Pi4 See: #1214 - firmware: pixelvalve_2711: Alter back porch for widths of 1366 See: #1202 - firmware: Clear the SMIDSW1 display interrupt flag on startup - firmware: dt-blob: Declare Pi 4B's SD_IO voltage selector - firmware: Fix to allow HDMI audio port route setting See: raspberrypi/linux#3100 - firmware: AWB: Allow user to set manual gains for the RPi algorithm - firmware: arm_loader: Fix disabling of audio before reboot - firmware: fixed up the custom CVT values to use correct group - firmware: hdmi: Add independent table entries for hdmi_timings on each display See: #1218 - firmware: arm_loader: Fix initial_turbo getting stuck See: #1005 - firmware: clock_2711: don't set reserved values for KA in PLL KAIP registers - firmware: arm_loader: Use platform_get_min_core_voltage for actual min voltage - firmware: clock: Remember disable state across clock changes - firmware: platform: pi4: Reduce min core voltage to 810mV - firmware: arm_dt: Use boost to force turbo mode rather than modifying core_freq_min for uart - firmware: arm_loader: Add optional flag to add_boost and get_boost calls - firmware: avs_2711: Move margin from init structure to run time - firmware: platform: fix get_min_default - firmware: arm_loader: Use AP_CLOCK_T for clock_iterator for easier debugging - firmware: AWB: Fix for manual WB settings in capture See: #1215 - firmware: sdhost_arasan: Disable busy wait on EMMC_STATUS_NEW_CARD_DATA_SET - firmware: power: Add 2711-specific PMIC compensation values - firmware: platform: Remove 10mV of margin - firmware: Revamp file loading logic - firmware: power: Allow reading uncached voltage - firmware: arm_loader: Request KMS to use CVT timings - firmware: vc_image: Default YUVUV to non-tall mode, with flag if required - firmware: ldconfig: Implement [pi2/pi3/pi3+] using board types See: #1242 - firmware: Avoid defaulting to 64-bit kernel on older Pi - firmware: Port file loading revamp to master - firmware: platform: Set up emmc clock earlier - firmware: hdmi: Implement platform_display_power on 2711 See: #1224 - firmware: arm_loader: Pass overscan settings to the kernel - firmware: arm_loader: Add option disable_fw_kms_setup to stop FKMS setup by FW - firmware: hdmi: Use pixel clock multiplier to determine the core clock - firmware: Fixups for composite output mode See: #1223 - firmware: platform: Allow display_power to be queried from gencmd See: #1224 - firmware: arm_loader: Fix no-DT and upstream handling See: #1250 - firmware: Round up HDMI0 minimum core clock - firmware: board_info: Support bcm2710- and bcm2837- Pi 2 DTBs See: raspberrypi/linux#3234 - firmware: power: bcm2711: Rescale the GPIO pad power - firmware: brfs: Add GENET driver for 2711 - firmware: bootloader_state: Add network state and bootmode configuration - firmware: bootloader_state: Fix mask for EEPROM header magic - firmware: arm_loader: Fix initial_turbo getting stuck See: #1005 - firmware: ldconfig: Support [edid=*] to mean any HDMI monitor See: #1136 - firmware: image_fx: Remove restriction that output stride must match input stride - firmware: image_fx: Remove spamming log line - firmware: platform: Switch to divide by one when arm_freq exceeds 2GHz - firmware: Add EMMC support to 2711 Arasan EMMC driver - firmware: arm_loader: Use /memory@0 if found See: raspberrypi/linux#3244 - firmware: bootloader_state: Fix length for bootloader_config - firmware: arasan_emmc: Fix STB_GPIOOVERRIDE for MMC1 in network boot - firmware: bfs: Verify that eth FS has not been closed before using
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This driver is used in the device tree for the emmc2 node. See #3032 Signed-off-by: Andrei Gherzan <[email protected]>
This should have been closed ages ago. |
aarch64
bcm2711_defconfig
withCONFIG_BCM_VIDEOCORE
disabled (see #3031) fails to get to early console with the kernel command lineearlycon=pl011,0xfe201000 console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=f2fs rootwait
. Thekernel7l.img
provided in https://github.com/raspberrypi/firmware with the same kernel command line and firmware boots just fine (and indeed starts printing to the console earlier than whenearlycon
is not set).The text was updated successfully, but these errors were encountered: