Hi Wolfgang, On Fri, Apr 1, 2011 at 3:39 PM, Wolfgang Denk <w...@denx.de> wrote: > Dear Lei Wen, > > In message <aanlktindn8ksqiq28h68rs77dc6pf-4mstibaq_2d...@mail.gmail.com> you > wrote: >> >> > This makes no sense to me. I have never seen any 9 bit registers in >> > any processor I ever encountered in real life. >> >> I don't mean that register is 9bit... >> I means that register, IER, is 32bit long, but 9-31th bit is reserved, and >> 0th to 8th bit is used... Maybe I don't say clearly... >> So byte access would only cover 0-7th bit, while 8th bit is not covered. >> >> > Also, in this case the serial controller is probably not NS16550 >> > compatible, because AFAICT the NS16550 uses only 8 bit wide >> > registers. >> >> This is may be additional feature added. For another part except this >> one bit is all compatible with ns16550. > > OK, so let's summarize the facts we found so far: > > 1. Your hardware is NOT NS16550 compatible. It does not have the > typical 8 bit register interface, but provides additional bits that > somehow control non-standard functionality. > > 2. You say there is one additional bit (bit 9, i. e. 0x00000100) which > must remain set to 1 which appears to be the default setting after > power-on reset. > > 3. You say that the current implementation, which uses a writeb() call > (i. e. a byte write operation) to this register would not only > affect bits 0...7, as expected, but also clear bit 9.
That is not my case. In my case, for writeb, it would affect only bits0-7, but leave bit 8 untouched. However, I need the bit 8 to be set to be 0, which is 1 at the power on. > > This seems somewhat unlikely to me, so please confirm that I > understood correctly. > > 4. You say that writing a 32 bit value instead (i. e. using writel()) > would work for you. > > This seems also unlikely to me, as the driver just operates on 8 > bit data, and will insert only 8 bit data into the word written, so > you will write some data word like 0x000000XX - and in this case > (and only in this case) the 9th bit would explicitly be set to 0. Yes, that is what I want. The bit8 set to 0. Best regards, Lei _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot