blob: 06583ab1bad1108ce9f10e5144f440db46d0f8a6 [file] [log] [blame]
\ QEMU specific initialization code
\
\ This program is free software; you can redistribute it and/or
\ modify it under the terms of the GNU General Public License
\ as published by the Free Software Foundation
\
include config.fs
\ ---------
\ DMA words
\ ---------
: ppc-dma-free ( virt size -- )
2drop
;
: ppc-dma-map-out ( virt devaddr size -- )
(dma-sync)
;
['] ppc-dma-free to (dma-free)
['] ppc-dma-map-out to (dma-map-out)
\ -------------------------------------------------------------
\ device-tree
\ -------------------------------------------------------------
" /" find-device
\ Apple calls the root node device-tree
" device-tree" device-name
[IFDEF] CONFIG_PPC64 2 [ELSE] 1 [THEN] encode-int " #address-cells" property
1 encode-int " #size-cells" property
h# 05f5e100 encode-int " clock-frequency" property
: dma-sync
(dma-sync)
;
: dma-alloc
(dma-alloc)
;
: dma-free
(dma-free)
;
: dma-map-in
(dma-map-in)
;
: dma-map-out
(dma-map-out)
;
new-device
" cpus" device-name
1 encode-int " #address-cells" property
0 encode-int " #size-cells" property
external
: encode-unit ( unit -- str len )
pocket tohexstr
;
: decode-unit ( str len -- unit )
parse-hex
;
finish-device
new-device
" memory" device-name
" memory" device-type
external
: open true ;
: close ;
finish-device
new-device
" rom" device-name
h# ff800000 encode-int 0 encode-int encode+ " reg" property
1 encode-int " #address-cells" property
h# ff800000 encode-int h# 800000 encode-int encode+
h# ff800000 encode-int encode+ " ranges" property
finish-device
\ -------------------------------------------------------------
\ /packages
\ -------------------------------------------------------------
" /packages" find-device
" packages" device-name
external
\ allow packages to be opened with open-dev
: open true ;
: close ;
\ /packages/terminal-emulator
new-device
" terminal-emulator" device-name
external
: open true ;
: close ;
\ : write ( addr len -- actual )
\ dup -rot type
\ ;
finish-device
\ -------------------------------------------------------------
\ The END
\ -------------------------------------------------------------
device-end