The hard coding is done in i86pc/io/consplat.c, which is worse.

The new code does not do physical path hard coding.

Wes

Garrett D'Amore wrote:
> In general, I like this project and would give it a +1.  I have only 
> one concern:
>
>         o Remove hard coded device path of legacy input/output devices
>        from consconfig_dacf module. For example, replace the hard coded
>        device path of legacy keyboard "/isa/i8042 at 1,60/keyboard at 0" with
>        the actual one "/pci at 0,0/isa at 1f/i8042 at 1,60/keyboard at 0".
>
>
> I'm confused, where does this path exist?  On my particular system, 
> the only references I see to i8042 devices in /etc/dacf.conf are:
>
> # Devices directly supporting the keyboard API need no device-specific 
> module,
> # but do need to be linked to the console stream.
> #
> driver-minorname="mouse8042:internal_mouse" consconfig_dacf:ms_config 
> post-attach - pushmod="vuid3ps2"
> driver-minorname="mouse8042:internal_mouse" consconfig_dacf:ms_config 
> pre-detach - pushmod="vuid3ps2"
>
>
> If I'm reading this properly, it triggers based on minor node name, 
> and not on physical path.
> I would be cautious about hardcoding any physical paths anywhere -- 
> you'd have to be 100% certain that the physical path was guaranteed to 
> always be the same.
>
> If you don't hard code the physical path, then I'll grant a +1.
>
>    -- Garrett
>
> Jerry Gilliam wrote:
>> I am sponsoring the following case on behalf of Judy Chen and
>> Wesley Shao as a fast-track, with timeout February 5, 2009.
>> The project desires micro/patch binding.
>>
>>
>>
>> 1. Introduction
>>    1.1. Project/Component Working Name:
>>         Remove /isa pseudo node for x86
>>    1.2. Name of Document Author/Supplier:
>>         Judy Chen
>>    1.3. Date of This Document:
>>     13 November, 2008
>>
>> 4. Technical Description
>>
>>    4.1. Background
>>
>>     The current Solaris x86 OS hard codes all ISA (non-self identi-
>>     fying) devices under /isa pseudo node. It has the following
>>     deficiencies:
>>
>>     o It does not reflect the actual hardware topology.
>>
>>     o It does not allow ISA devices that are capable of bus mastering
>>       (including 1st-party and 3rd-party DMA) to work correctly on
>>       virtualization platforms. To be exact, the Intel VT-d technology
>>       provides DMA remapping hardware that requires ISA DMA devices'
>>       PCI ID (bus, device, and function numbers) to be provided at
>>       DMA mapping request time. Since ISA device's parent is directly
>>       under root, such PCI ID cannot be determined by the DMA
>>       implementation code. The previous Intel IOMMU project
>>       (PSARC/2008/560) worked around this by doing handshakes via 
>> global   
>>       variables. 3rd parties, in this case Intel, won't be able to
>>       provide a DDI compliant device driver. The bus mastering capable
>>       ISA devices that are supported by Solaris include:
>>           ecpp(7D): parallel port
>>           fdc(7D) : floppy disk controller
>>           pcn(7D) : AMD PCnet-ISA ethernet controller
>>
>>         o The Resource Allocator (RA), part of the current DDI Hotplug
>>       Framework project (PSARC/2008/181), needs to maintain certain
>>       PCI/ISA resources (memory/IO address space) consistently. While
>>       ISA devices are not under pci/isa hardware node, RA project
>>       would have to provide a separate set of code and interface to
>>       manage this disparity.
>>
>>    4.2. Proposal
>>
>>          This project proposes to remove /isa pseudo node and move ISA
>>      devices under LPC/ISA bridge on x86 platforms. The detailed changes
>>      are listed as below.
>>
>>          o Remove /isa pseudo node. Attach isa driver with LPC/ISA 
>> bridge
>>        and as a result, move ISA devices' nodes under pci/isa hardware
>>        node.
>>
>>          o Add below properties to pci/isa node according to IEEE1275
>>        standard.
>>                "device_type", "ranges"
>>
>>          o Remove hard coded device path of legacy input/output devices
>>        from consconfig_dacf module. For example, replace the hard coded
>>        device path of legacy keyboard "/isa/i8042 at 1,60/keyboard at 0" with
>>        the actual one "/pci at 0,0/isa at 1f/i8042 at 1,60/keyboard at 0".
>>            o Remove the dependency to /used-resources from 
>> pci_autoconfig
>>        module.
>>
>>          Currently, the pseudo node /used-resources is used to represent
>>      ISA resources. The ISA resources include memory/IO address spaces,
>>      interrupts and DMA channels. /used-resouces is created by ACPI
>>      when ACPI enumerates ISA devices. It is used by two modules:
>>
>>          - pci_autoconfig: to setup memory/io address spaces 
>> available for
>>        PCI bus.
>>
>>          - busra: to setup resource map for memory/io address spaces and
>>        interrupts available for ISA bus.
>>
>>      This project will represent the ISA memory/IO address space with
>>      standard "ranges" property of pci/isa hardware node. And leave
>>      busra the consumer of /used-resources. Once the dependency between
>>      busra and /used-resources is addressed by the DDI Hotplug Framework
>>      project, /used-resources can then be removed for good.
>>
>>     4.3  Benefits
>>
>>     o A proper parent-child relationship permits allocation of the
>>       ISA resources such as DMA and interrupts in the context of
>>       the system's PCI resources.
>>
>>     o The current iommu implementation can be simplified.
>>
>>     o The ioapic interrupts can get a cleaner implementation
>>        as it evolves to support more complex platforms.
>>
>>     o The hotplug framework can manage a hierarchical resource map.
>>
>>
>> 6. Resources and Schedule
>>
>>    6.4. Steering Committee requested information
>>         6.4.1. Consolidation C-team Name:  ON
>>    6.5. ARC review type:  FastTrack
>>    6.6. ARC Exposure:  Open
>>
>>   
>

Reply via email to