@@ -411,12 +411,14 @@
: pci-bridge-gen-mem-range ( addr prop-addr prop-len -- addr prop-addr prop-len )
2 pick 24 + rtas-config-l@ \ fetch Value ( addr paddr plen val )
dup 000FFFFF or \ calc limit Bits 31:0 ( addr paddr plen val limit.31:0 )
- swap 0000FFF0 and 10 lshift \ calc base Bits 31:0 ( addr paddr plen limit.31:0 base.31:0 )
+ swap dup F and >r \ R: 64-bit?
+ 0000FFF0 and 10 lshift \ calc base Bits 31:0 ( addr paddr plen limit.31:0 base.31:0 )
4 pick 28 + rtas-config-l@ \ fetch upper Basebits ( addr paddr plen limit.31:0 base.31:0 base.63:32 )
20 lshift or swap \ and calc Base ( addr paddr plen base.63:0 limit.31:0 )
4 pick 2C + rtas-config-l@ \ fetch upper Limitbits ( addr paddr plen base.63:0 limit.31:0 limit.63:32 )
20 lshift or \ and calc Limit ( addr paddr plen base.63:0 limit.63:0 )
- 42000000 pci-bridge-gen-range \ and generate it ( addr paddr plen )
+ r> IF 03000000 ELSE 42000000 THEN \ 64-bit or 32-bit ?
+ pci-bridge-gen-range \ and generate it ( addr paddr plen )
;
This fixes all the XHCI problems for me.