Speaking of docks and backwards compatibility and soforth, something occurred to me that may be of minor interest in the "Did Nintendo cancel a 4K Switch?" discussion.
When Switch firmware 12.0 released a couple of years ago, the homebrew community found a USB configuration setting in it called "4kdp_preferred_over_usb30", which
made the mainstream news as it suggested a forthcoming 4K Switch model. To provide a bit of context for this, a USB-C connection has four lanes with which it can transmit and receive data, with a separate USB 2 lane included for auxiliary data. Devices can divide these four lanes in pairs between USB 3 data and various alt modes, and in the case of DisplayPort alt mode (which Switch uses to transmit video and audio data to the dock), you can either use two lanes for DisplayPort and two for USB 3 data, or you can use all four lanes for DisplayPort, which means the only USB data you can transmit is over the USB 2 aux lane.
If we stick to USB 3 and DisplayPort 1.4 or lower, two lanes of DisplayPort aren't sufficient to transmit uncompressed 4K HDR video at 60Hz. You can use either chroma sub-sampling or DSC (Display Stream Compression) to squeeze it in, which would have a relatively minor impact on image quality, but if you can transmit it uncompressed then obviously that's preferable. The "4kdp_preferred_over_usb30" configuration setting, then, is clearly to choose between transmitting four lanes of DisplayPort over the USB-C connection, allowing for uncompressed 4K video but no USB 3 data, or transmitting only 2 lanes of DisplayPort and having USB 3 data alongside it.
What I realised is that the "4kdp_preferred_over_usb30" setting was definitely not added for use with T239-based hardware, for the simple reason that T239 doesn't have four lanes of DisplayPort output. Here's the relevant code from the
Linux commit that gives us info on T239's DisplayPort implementation:
Code:
struct cmd_uphy_display_port_init_request {
/** @brief DisplayPort link rate, T239 valid: 1620, 2700, 5400, 8100, 2160, 2430, 3240, 4320, 6750 */
uint16_t link_rate;
/** @brief 1: lane 0; 2: lane 1; 3: lane 0 and 1 */
uint16_t lanes_bitmap;
} BPMP_ABI_PACKED;
You can see that the lanes_bitmap variable only supports up to two lanes, and this code is specific to T239 because neither Xavier or Orin support DisplayPort over their UPHY interfaces.
So, if T239 only has two lanes of DisplayPort output, then a "4kdp_preferred_over_usb30" setting makes no sense. It can still transmit 4K HDR video that's probably indistinguishable in most cases using DSC or chroma sub-sampling, but it can do that in two lanes alongside USB 3 data, rather than trading off between 4K output and USB 3 data.
If the "4kdp_preferred_over_usb30" wasn't added for T239, then it follows that there must have been some other plans for a 4K capable Switch model separate from the T239 project. That doesn't necessarily mean rendering games at 4K, as it's possible it was just planned to take existing Switch graphics and scale it to a 4K output, or even just support video streaming like Netflix or YouTube or whatever at 4K, but there must have existed plans for some sort of Switch model that would output at 4K resolution that didn't use T239.