| include config.fs |
| |
| \ ------------------------------------------------------------------------- |
| \ UPA encode/decode unit |
| \ ------------------------------------------------------------------------- |
| |
| : decode-unit-upa ( str len -- id lun ) |
| ascii , left-split |
| ( addr-R len-R addr-L len-L ) |
| parse-hex |
| -rot parse-hex |
| swap |
| ; |
| |
| : encode-unit-upa ( id lun -- str len) |
| swap |
| pocket tohexstr |
| " ," pocket tmpstrcat >r |
| rot pocket tohexstr r> tmpstrcat drop |
| ; |
| |
| \ --------- |
| \ DMA words |
| \ --------- |
| |
| : sparc64-dma-free ( virt size -- ) |
| 2drop |
| ; |
| |
| : sparc64-dma-map-in ( virt size cacheable? -- devaddr ) |
| 2drop |
| ; |
| |
| : sparc64-dma-map-out ( virt devaddr size -- ) |
| (dma-sync) |
| ; |
| |
| ['] sparc64-dma-free to (dma-free) |
| ['] sparc64-dma-map-in to (dma-map-in) |
| ['] sparc64-dma-map-out to (dma-map-out) |
| |
| \ ------------------------------------------------------------- |
| \ device-tree |
| \ ------------------------------------------------------------- |
| |
| " /" find-device |
| 2 encode-int " #address-cells" property |
| 2 encode-int " #size-cells" property |
| " sun4u" encode-string " compatible" property |
| |
| : encode-unit encode-unit-upa ; |
| : decode-unit decode-unit-upa ; |
| |
| : dma-sync ( virt devaddr size -- ) |
| (dma-sync) |
| ; |
| |
| : dma-alloc ( size -- virt ) |
| (dma-alloc) |
| ; |
| |
| : dma-free ( virt size -- ) |
| (dma-free) |
| ; |
| |
| : dma-map-in ( virt size cacheable? -- devaddr ) |
| (dma-map-in) |
| ; |
| |
| : dma-map-out ( virt devaddr size -- ) |
| (dma-map-out) |
| ; |
| |
| new-device |
| " memory" device-name |
| " memory" device-type |
| external |
| : open true ; |
| : close ; |
| \ see arch/sparc64/lib.c for methods |
| finish-device |
| |
| new-device |
| " virtual-memory" device-name |
| external |
| \ see arch/sparc64/lib.c for methods |
| finish-device |
| |
| " /options" find-device |
| " disk" encode-string " boot-from" property |
| |
| " /openprom" find-device |
| " OBP 3.10.24 1999/01/01 01:01" encode-string " version" property |