Re: 8270 & Watchdog - early start
From: Laurent Pinchart <hidden>
Date: 2007-09-20 08:54:09
Hi Matias, On Thursday 20 September 2007 10:19, Matias Sundman wrote:
Hi, I have a custom MPC8270 board running Linux and u-boot. Now, I enabled the watchdog on the 8270 and need to kick it regularly by writing ; 0x556c 0xaa39 To the internal register @ 0x0x1000e. When I am coming out from head.S to start_kernel I was thinking of kicking it a couple times "manually" before a timer interrupt is inserted which will take care of it until a "superdaemon" is taking over. I tried to serve the register as follows; *((volatile unsigned int*)(0xf001000e))=3D0x556c; *((volatile unsigned int*)(0xf001000e))=3D0xaa39; But it does not take effect. I thought that since u-boot had set up the IMMR to 0xf000'0000 I could directly write to the register as above. Any clues why this does not work?
The Software Service Register (SWSR) is 16-bit wide. Unsigned int on the 82= 70=20 is 32-bit wide. You must not reference physical addresses directly after the MMU has been=20 turned on. Use ioremap/iounmap to map/unmaap the CPM registers. If you're=20 using ARCH=3Dppc, you can also use the global CPM mapping cpm2_immr. Use the out_* macros/functions to write to I/O space. out_be16(&cpm2_immr->im_siu_conf.siu_82xx.sc_swsr, 0x556c); out_be16(&cpm2_immr->im_siu_conf.siu_82xx.sc_swsr, 0xaa39); Best regards, =2D-=20 Laurent Pinchart CSE Semaphore Belgium Chauss=C3=A9e de Bruxelles, 732A B-1410 Waterloo Belgium T +32 (2) 387 42 59 =46 +32 (2) 387 42 75