On 23.07.19 18:38, Ralf Ramsauer wrote: > > > On 7/23/19 5:35 PM, Jan Kiszka wrote: >> On 23.07.19 17:19, Jan Kiszka wrote: >>> On 23.07.19 16:50, Ralf Ramsauer wrote: >>>> Two bad news: Linux's 8250 driver needs patching. At least we need some >>>> parameter like 8250.platform=disable to disable the probing for platform >>>> uarts. Why? >>>> >>>> ATM, we must specify 8250.nr_uarts. Otherwise the kernel will touch >>>> restricted ports. It does touch those ports, as it lacks ACPI platform >>>> information and assumes 'any' platform UART is present. >>> >>> Yes, nr_uarts is the patch-free approach for now. I once had a hack that >>> propagated the information "this is Jailhouse, you may not find platform >>> UARTs" >>> to the driver. But that was a hack, so I didn't propose that upstream along >>> with >>> the other x86 changes. Plus, there are cases where we do want to use a >>> platform >>> uart in the non-root cell. >>> >>>> >>>> I.e.: >>>> 8250.nr_uarts=1 only touches 0x3f8 >>>> 8250.nr_uarts=2 touches 0x3f8 and 0x2f8 >>>> 8250.nr_uarts=3 touches 0x3f8, 0x2f8, 0x3e9 (?) >>>> >>>> In addition to that I have a PCI device. And Linux won't probe it until >>>> it probed all other PIO ports. If I specify 8250.nr_uarts=1 (as I do >>>> want to restrict access to 0x2f8), it will never probe the PCI device. >>>> >>>> So at the moment, the hack is to set 8250.nr_uarts=4 and permit access >>>> to all ports. Yikes. At least I now know that the PCI device basically >>>> works, but still, this needs to be patched. >>>> >>> >>> OK, that was probably not yet addressed. We once had a setup with UARTs on >>> a PCI >>> card, but that machine also had no platform UARTs IIRC. >>> >>> If there no other way to tell Linux the number of platform UARTs, we will >>> have >>> to introduce one, for the sake of this use case already. >>> >> >> Maybe we can do something like arch/x86/platform/ce4100/ce4100.c to "tune" >> the > > Thanks for the pointer. > >> platform UARTs (ce4100_serial_fixup). But it still takes an extension of the >> boot protocol to provide Linux with the information about available platform >> UARTs. > > Hm. We do have the comm region... It will hold the config's struct > jailhouse_console. We could use this in combination with > serial8250_set_isa_configurator. > > This won't enable all platform uarts, but with this we could > automatically enable at least one platform uart + hypervisor debug > output. This should be sufficient for most cases.
This is x86 only: If the well-known legacy ports are open in the config and also the related IRQs, cell-linux could set some to-be-defined flags in the setup_data, and the kernel could tune the platform UART settings accordingly. "Should be simple" (TM). Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/00a032ec-71ae-8b66-a85d-a8f809e2f17e%40siemens.com.
