XPost: alt.folklore.computers   
   From: cross@spitfire.i.gajendra.net   
      
   In article ,   
   Scott Lurndal wrote:   
   >cross@spitfire.i.gajendra.net (Dan Cross) writes:   
   >>In article <2025Aug3.185110@mips.complang.tuwien.ac.at>,   
   >>Anton Ertl wrote:   
   >>>[snip]   
   >>>The C environment for DEC OSF/1 was an I32LP64 setup, not an ILP64   
   >>>setup, so can you really call it pure?   
   >   
   >>In the OS kernel, often times you want to allocate physical   
   >>address space below 4GiB for e.g. device BARs; many devices are   
   >>either 32-bit (but have to work on 64-bit systems) or work   
   >>better with 32-bit BARs.   
   >   
   >Indeed. Modern PCI controllers tend to support remapping   
   >a 64-bit physical address in the hardware to support devices   
   >that only advertise 32-bit bars[*]. The firmware (e.g. UEFI   
   >or BIOS) will setup the remapping registers and provide the   
   >address of the 64-bit aperture to the kernel via device tree   
   >or ACPI tables.   
   >   
   >[*] AHCI is the typical example, which uses BAR5.   
      
   Yes; AHCI is an odd duck. They probably should have chosen BAR4   
   for the ABAR and reserved 5; then they could have extended it to   
   64-bit using the (BAR4, BAR5) pair.   
      
   With the IOHC we have a lot more flexibility than we did   
   previously.   
      
    - Dan C.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|