[U-Boot-Users] MIPS: about the function of the octeon_twsi_set_addr8

27 May
2008
27 May
'08
3:14 p.m.
hello! the field of [31:0] in the register MIO_TWS_SW_TWSI is data field, in the following function the low-8-bit of the 16-bit address is loaded in the MIO_TWS_SW_TWSI[7:0]. WHY? int octeon_twsi_set_addr8(uint8_t dev_addr, uint16_t addr) { /* 16 bit internal address ONLY */ uint64_t val; octeon_write64(CVMX_MIO_TWS_SW_TWSI,0x8000000000000000ull | ( 0x0ull << 57) | (((uint64_t)dev_addr) << 40) | (addr & 0xff)); // tell twsii to do the read while (octeon_read64(CVMX_MIO_TWS_SW_TWSI)&0x8000000000000000ull); val = octeon_read64(CVMX_MIO_TWS_SW_TWSI); if (!(val & 0x0100000000000000ull)) { return -1; } return(0); }
6190
Age (days ago)
6190
Last active (days ago)
0 comments
1 participants
participants (1)
-
wangjiankun820624