@@ -28,10 +28,6 @@ const GPIO_HI_OE_XOR = 0x04c; // GPIO32..47, QSPI, USB output enable XOR
2828
2929const GPIO_MASK = 0x3fffffff ;
3030
31- const FIFO_ST = 0x050 ; // Inter-core FIFO status register
32- const FIFO_WR = 0x054 ; // Inter-core FIFO write register
33- const FIFO_RD = 0x058 ; // Inter-core FIFO read register
34-
3531//SPINLOCK
3632const SPINLOCK_ST = 0x5c ;
3733const SPINLOCK0 = 0x100 ;
@@ -43,8 +39,6 @@ export class RPSIO {
4339 qspiGpioValue = 0 ;
4440 qspiGpioOutputEnable = 0 ;
4541 spinLock = 0 ;
46- fifoCore0In : number [ ] = [ ] ;
47- fifoCore1In : number [ ] = [ ] ;
4842 readonly core0 ;
4943 readonly core1 ;
5044
@@ -65,20 +59,6 @@ export class RPSIO {
6559 }
6660 }
6761 switch ( offset ) {
68- case FIFO_RD : {
69- let thisCoreFifo = ( core == Core . Core0 ) ? this . fifoCore0In : this . fifoCore1In ;
70- if ( thisCoreFifo . length == 0 ) {
71- // FIXME add IRQ support
72- // console.error("reading from empty FIFO");
73- }
74- return thisCoreFifo . shift ( ) || 0 ;
75- }
76- case FIFO_ST : {
77- let thisCoreFifo = ( core == Core . Core0 ) ? this . fifoCore0In : this . fifoCore1In ;
78- let otherCoreFifo = ( core == Core . Core0 ) ? this . fifoCore1In : this . fifoCore0In ;
79- // FIXME add WOF/ROE support
80- return ( otherCoreFifo . length < 8 ? 2 : 0 ) | ( thisCoreFifo . length > 0 ? 1 : 0 ) ;
81- }
8262 case GPIO_IN :
8363 return this . rp2040 . gpioValues ;
8464 case GPIO_HI_IN : {
@@ -123,6 +103,7 @@ export class RPSIO {
123103 case SPINLOCK_ST :
124104 return this . spinLock ;
125105 }
106+ // Divider, Interpolator, FIFO get handled per core in sio-core
126107 switch ( core ) {
127108 case Core . Core0 :
128109 return this . core0 . readUint32 ( offset ) ;
@@ -140,14 +121,6 @@ export class RPSIO {
140121 const prevGpioValue = this . gpioValue ;
141122 const prevGpioOutputEnable = this . gpioOutputEnable ;
142123 switch ( offset ) {
143- case FIFO_WR :
144- let otherCoreFifo = ( core == Core . Core0 ) ? this . fifoCore1In : this . fifoCore0In ;
145- if ( otherCoreFifo . length == 8 ) {
146- console . error ( "writing to full FIFO" ) ;
147- } else {
148- otherCoreFifo . push ( value ) ;
149- }
150- break ;
151124 case GPIO_OUT :
152125 this . gpioValue = value & GPIO_MASK ;
153126 break ;
@@ -197,6 +170,7 @@ export class RPSIO {
197170 this . qspiGpioOutputEnable ^= value & GPIO_MASK ;
198171 break ;
199172 default :
173+ // Divider, Interpolator, FIFO get handled per core in sio-core
200174 switch ( core ) {
201175 case Core . Core0 :
202176 this . core0 . writeUint32 ( offset , value ) ;
0 commit comments