Possible error IN GPIO

Greetings

I have been developing BBB for RTEMS. I have been writing direct to GPIO.
I have found that some of the pins have not been working

My defines

#define OE_ADDR 0x134
#define GPIO_DATAOUT 0x13C
#define GPIO_DATAIN 0x138
#define GPIO_RISINGDETECT 0x148
#define GPIO_FALLINGDETECT 0x14C

#define GPIO0_ADDR 0x44E07000
#define GPIO1_ADDR 0x4804C000
#define GPIO2_ADDR 0x481AC000
#define GPIO3_ADDR 0x481AE000

I initialise

*(unsigned long *)(GPIO1_ADDR+OE_ADDR) &= ~((1<<21) | (1<<22) | (1<<23) | (1<<24) | (1<<13) | (1<<2) | (1<<3) | (1<<30) | (1<<31) | (1<<6) | (1<<7));

*(unsigned long *)(GPIO2_ADDR+OE_ADDR) &= ~((1<<0));
*(unsigned long *)(GPIO0_ADDR+OE_ADDR) &= ~((1<<3) | (1<<4) |(1<<5));

//Set all outputs LOW to start:
*(unsigned long *)(GPIO1_ADDR+GPIO_DATAOUT) &= ~((1<<21) | (1<<22)| (1<<23) | (1<<24) | (1<<13) | (1<<2) | (1<<3) | (1<<30) | (1<<31) | (1<<6) | (1<<7));

*(unsigned long *)(GPIO2_ADDR+GPIO_DATAOUT) &= ~((1<<0));
*(unsigned long *)(GPIO0_ADDR+GPIO_DATAOUT) &= ~((1<<3) | (1<<4) |(1<<5));

And then I toggle in a thread

*(unsigned long *)(GPIO1_ADDR+GPIO_DATAOUT) ^= ((1<<21) | (1<<2) | (1<<3) | (1<<30) | (1<<31) | (1<<6) | (1<<7));
*(unsigned long *)(GPIO2_ADDR+GPIO_DATAOUT) ^= ((1<<0));
*(unsigned long *)(GPIO0_ADDR+GPIO_DATAOUT) ^= ((1<<3) | (1<<4) |(1<<5));

I have found that

I found that GPIO1_0 to GPIO1_3 did not read or write
I found that GPIO1_30 and GPIO1_31 did not read or write

I also found that P9-15 writes whether writing to GPIO1_16 or GPIO2_0, According to the schematics, 1_16 and 2_0 are wire-or-ed together with R160 and R161 and routed to P9-15

Any idea about what I can do with the problems on GPIO1?
Thanks