7 How to get the Value of SFR after Linux booting - limingth/LASO GitHub Wiki

main.c

limingth@ubuntu:~/led-drv-on-linux$ cat main.c

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

extern void * init(int addr);

int main(int argc, char * argv[])
{
	volatile int * vmem;
	int i = 0;

	if (argc == 1)
	{
		printf("./sfr addr size\n");
		return 0;
	}

	printf("addr = %s, size = %s \n", argv[1], argv[2]);

	unsigned int addr = strtoul(argv[1], 0, 16);
	int size = atoi(argv[2]);

	printf("SFR addr = 0x%x, size = 0x%x\n", addr, size);

	vmem = init(addr);
	
	for (i = 0; i < size; i++)
	{
		if (i % 4 == 0)
			printf("%8x : ", (int)(addr+i*4));

		printf("%8x ", vmem[i]);

		if(i % 4 == 3)
			printf("\n");
	}
	
	return 0;
}

init.c

limingth@ubuntu:~/led-drv-on-linux$ cat init.c

#include <fcntl.h>
#include <sys/mman.h>
#include <stdio.h>
#include <stdlib.h>

void * init(int addr)
{
	void * vmem;
	int fd = open("/dev/mem", O_RDWR);
		
	if (fd < 0)
	{
		printf("FD error!\n");
		exit(1);
	}
		
	vmem = mmap(0,1,PROT_READ|PROT_WRITE, MAP_SHARED, fd, addr);
	if (vmem == MAP_FAILED)
	{
		printf("Mmap error!\n");
		exit(1);
	}

	return vmem;
}

Makefile

limingth@ubuntu:~/led-drv-on-linux$ cat Makefile

all: 
	gcc init.c main.c -o a.out
	arm-linux-gcc init.c main.c -o sfr 
	cp sfr ../

clean: 
	-rm *.obj *.o app

For Your Info

[root@FriendlyARM /tmp]# ./sfr 0xe0100000 256
addr = 0xe0100000, size = 256 
SFR addr = 0xe0100000, size = 0x100
e0100000 :      2cf        0     1c95        0 
e0100010 :     2238        0        0        0 
e0100020 :      fff        0        0        0 
e0100030 :        0        0        0        0 
e0100040 :        0        0        0        0 
e0100050 :        0        0        0        0 
e0100060 :        0        0        0        0 
e0100070 :        0        0        0        0 
e0100080 :        0        0        0        0 
e0100090 :        0        0        0        0 
e01000a0 :        0        0        0        0 
e01000b0 :        0        0        0        0 
e01000c0 :        0        0        0        0 
e01000d0 :        0        0        0        0 
e01000e0 :        0        0        0        0 
e01000f0 :        0        0        0        0 
e0100100 : a07d0301        0 a29b0c01        0 
e0100110 : a8430303     bcee        0        0 
e0100120 : a06c0603        0        0        0 
e0100130 :        0        0        0        0 
e0100140 :        0        0        0        0 
e0100150 :        0        0        0        0 
e0100160 :        0        0        0        0 
e0100170 :        0        0        0        0 
e0100180 :        0        0        0        0 
e0100190 :        0        0        0        0 
e01001a0 :        0        0        0        0 
e01001b0 :        0        0        0        0 
e01001c0 :        0        0        0        0 
e01001d0 :        0        0        0        0 
e01001e0 :        0        0        0        0 
e01001f0 :        0        0        0        0 
e0100200 : 10001111   600000        0   666000 
e0100210 : 66666666        0        7        0 
e0100220 :        0        0        0        0 
e0100230 :        0        0        0        0 
e0100240 :        0        0        0        0 
e0100250 :        0        0        0        0 
e0100260 :        0        0        0        0 
e0100270 :        0        0        0        0 
e0100280 : ffffffff ffffffff        0        0 
e0100290 :        0        0        0        0 
e01002a0 :        0        0        0        0 
e01002b0 :        0        0        0        0 
e01002c0 :        0        0        0        0 
e01002d0 :        0        0        0        0 
e01002e0 :        0        0        0        0 
e01002f0 :        0        0        0        0 
e0100300 : 14131440   300400        0   333000 
e0100310 : 9999dddd        0    70000        0 
e0100320 :        0        0        0        0 
e0100330 :        0        0        0        0 
e0100340 :        0        0        0        0 
e0100350 :        0        0        0        0 
e0100360 :        0        0        0        0 
e0100370 :        0        0        0        0 
e0100380 :        0        0        0        0 
e0100390 :        0        0        0        0 
e01003a0 :        0        0        0        0 
e01003b0 :        0        0        0        0 
e01003c0 :        0        0        0        0 
e01003d0 :        0        0        0        0 
e01003e0 :        0        0        0        0 
e01003f0 :        0        0        0        0 
[root@FriendlyARM /tmp]# 

[root@FriendlyARM /tmp]# ./sfr 0xf8000000 256
addr = 0xf8000000, size = 256 
SFR addr = 0xf8000000, size = 0x100
f8000000 :      417   a3c060        0        0 
f8000010 :    70701   270401    879df        0 
f8000020 :        0        0     8077        0 
f8000030 :        0        4        0 7d517d51 
f8000040 :        0        0        0        0 
f8000050 :        0        0        0        0 
f8000060 :        0    ef90f        0    1fe00 
f8000070 :        0        0        0        0 
f8000080 :        0        0        0        0 
f8000090 :        0        0        0        0 
f80000a0 :        0        0        0        0 
f80000b0 : 35faf000        0        0        0 
f80000c0 :        0        0        0        0 
f80000d0 :        0        0        0        0 
f80000e0 : 3602e800        0        0        0 
f80000f0 :        0        0        0     6000 
f8000100 :        0        0      780        0 
f8000110 :        0        0        0        0 
f8000120 :        0        0        0        0 
f8000130 :     9001        0        0        0 
f8000140 :        0        0        0        0 
f8000150 :        0        0        0        0 
f8000160 :        0        0        0        0 
f8000170 :        0        0        0        0 
f8000180 :        0        0        0        0 
f8000190 :        0        0        0        0 
f80001a0 :        0        0        0        0 
f80001b0 :        0        0        0        0 
f80001c0 : 10040100        0        0        0 
f80001d0 :        0        0        0        0 
f80001e0 :        0        0        0  1000100 
f80001f0 :        0        0  1000100  1800080 
f8000200 :        0        0        0        0 
f8000210 :        0        0        0        0 
f8000220 :        0        0        0        0 
f8000230 :        0        0        0        0 
f8000240 :        0       c2       c2       c2 
f8000250 :       c2        0        0        0 
f8000260 :        0        0        0        0 
f8000270 :        0        0        0        0 
f8000280 :        0        0        0        0 
f8000290 :        0        0        0        0 
f80002a0 :        0        0        0        0 
f80002b0 :        0        0        0        0 
f80002c0 :        0        0        0        0 
f80002d0 :        0        0        0        0 
f80002e0 :        0        0        0        0 
f80002f0 :        0        0        0        0 
f8000300 :        0        0        0        0 
f8000310 :        0        0        0        0 
f8000320 :        0        0        0        0 
f8000330 :        0        0        0        0 
f8000340 :        0        0        0        0 
f8000350 :        0        0        0        0 
f8000360 :        0        0        0        0 
f8000370 :        0        0        0   100000 
f8000380 :   300020   500040   700060   900080 
f8000390 :   b000a0   d000c0   f000e0  1100100 
f80003a0 :  1300120  1500140  1700160  1900180 
f80003b0 :  1b001a0  1d001c0  1f001e0  2100200 
f80003c0 :  2300220  2500240  2700260  2900280 
f80003d0 :  2b002a0  2d002c0  2f002e0  3100300 
f80003e0 :  3300320  3500340  3700360  3900380 
f80003f0 :  3b003a0  3d003c0  3f003e0      400 

f80040a0 :        0        0        0        0                                  
f80040b0 : 35faf000        0        0        0                                  
f80040c0 :        0        0        0        0                                  
f80040d0 :        0        0        0        0                                  
f80040e0 : 3602e800        0        0        0                                  
f80040f0 :        0        0        0        0                                  
f8004100 :        0        0      780        0       

[root@FriendlyARM /]# ./sfr 0xeee10000 64
addr = 0xeee10000, size = 64
SFR addr = 0xeee10000, size = 0x40
eee10000 :        1        0       7f        0
eee10010 :        0        0        0        0
eee10020 :        0        0        0        0
eee10030 :        0        0        0        0
eee10040 :        0        0        0        0
eee10050 :        0        0        0        0
eee10060 :        0        0        0        0
eee10070 :        0        0        0        0
eee10080 :        1        0       7f        0
eee10090 :        0        0        0        0
eee100a0 :        0        0        0        0
eee100b0 :        0        0        0        0
eee100c0 :        0        0        0        0
eee100d0 :        0        0        0        0
eee100e0 :        0        0        0        0
eee100f0 :        0        0        0        0

[   54.517075] ASoC_mini210: SCLK=67738000 PSR=6 RCLK=11289600 RFS=256 BFS=32

[root@FriendlyARM /]# ./sfr 0xeee30000 64
addr = 0xeee30000, size = 64
SFR addr = 0xeee30000, size = 0x40
eee30000 : 8050c185      600     3f40     8500
eee30010 :        0        0        0        0
eee30020 :        0        0 7fff0000        0

[root@FriendlyARM /tmp]# ./sfr 0xeee30000 256
addr = 0xeee30000, size = 256 
SFR addr = 0xeee30000, size = 0x100
eee30000 : 8050cc91      100       40        0 
eee30010 :        0        0        0        0 
eee30020 :        0        0 7fff0000        0 
eee30030 :        0        0        0        0 
eee30040 :        0        0        0        0 
eee30050 :        0        0        0        0 
eee30060 :        0        0        0        0 
eee30070 :        0        0        0        0 
eee30080 :        0        0        0        0 
eee30090 :        0        0        0        0 
eee300a0 :        0        0        0        0 
eee300b0 :        0        0        0        0 
eee300c0 :        0        0        0        0 
eee300d0 :        0        0        0        0 
eee300e0 :        0        0        0        0 
eee300f0 :        0        0        0        0 
eee30100 : 8050c491      100       40        0 
eee30110 :        0        0        0        0 
eee30120 :        0        0 7fff0000        0 
eee30130 :        0        0        0        0 
eee30140 :        0        0        0        0 
eee30150 :        0        0        0        0 
eee30160 :        0        0        0        0 
eee30170 :        0        0        0        0 
eee30180 :        0        0        0        0 
eee30190 :        0        0        0        0 
eee301a0 :        0        0        0        0 
eee301b0 :        0        0        0        0 
eee301c0 :        0        0        0        0 
eee301d0 :        0        0        0        0 
eee301e0 :        0        0        0        0 
eee301f0 :        0        0        0        0 
eee30200 : 8050c491      100       40        0 
eee30210 :        0        0        0        0 
eee30220 :        0        0 7fff0000        0 
eee30230 :        0        0        0        0 
eee30240 :        0        0        0        0 
eee30250 :        0        0        0        0 
eee30260 :        0        0        0        0 
eee30270 :        0        0        0        0 
eee30280 :        0        0        0        0 
eee30290 :        0        0        0        0 
eee302a0 :        0        0        0        0 
eee302b0 :        0        0        0        0 
eee302c0 :        0        0        0        0 
eee302d0 :        0        0        0        0 
eee302e0 :        0        0        0        0 
eee302f0 :        0        0        0        0 
eee30300 : 8050cc91      100       40        0 
eee30310 :        0        0        0        0 
eee30320 :        0        0 7fff0000        0 
eee30330 :        0        0        0        0 
eee30340 :        0        0        0        0 
eee30350 :        0        0        0        0 
eee30360 :        0        0        0        0 
eee30370 :        0        0        0        0 
eee30380 :        0        0        0        0 
eee30390 :        0        0        0        0 
eee303a0 :        0        0        0        0 
eee303b0 :        0        0        0        0 
eee303c0 :        0        0        0        0 
eee303d0 :        0        0        0        0 
eee303e0 :        0        0        0        0 
eee303f0 :        0        0        0        0 
[root@FriendlyARM /tmp]# 

[root@FriendlyARM /tmp]# ./sfr 0xe2100000 256
addr = 0xe2100000, size = 256 
SFR addr = 0xe2100000, size = 0x100
e2100000 :      e00        0        0        0 
e2100010 :        0        0        0        0 
e2100020 :        0        0        0        0 
e2100030 :        0        0        0        0 
e2100040 :        0        0        0        0 
e2100050 :        0        0        0        0 
e2100060 :        0        0        0        0 
e2100070 :        0        0        0        0 
e2100080 :        0        0        0        0 
e2100090 :        0        0        0        0 
e21000a0 :        0        0        0        0 
e21000b0 :        0        0        0        0 
e21000c0 :        0        0        0        0 
e21000d0 :        0        0        0        0 
e21000e0 :        0        0        0        0 
e21000f0 :        0        0        0        0 
e2100100 :      e00        0        0        0 
e2100110 :        0        0        0        0 
e2100120 :        0        0        0        0 
e2100130 :        0        0        0        0 
e2100140 :        0        0        0        0 
e2100150 :        0        0        0        0 
e2100160 :        0        0        0        0 
e2100170 :        0        0        0        0 
e2100180 :        0        0        0        0 
e2100190 :        0        0        0        0 
e21001a0 :        0        0        0        0 
e21001b0 :        0        0        0        0 
e21001c0 :        0        0        0        0 
e21001d0 :        0        0        0        0 
e21001e0 :        0        0        0        0 
e21001f0 :        0        0        0        0 
e2100200 :      e00        0        0        0 
e2100210 :        0        0        0        0 
e2100220 :        0        0        0        0 
e2100230 :        0        0        0        0 
e2100240 :        0        0        0        0 
e2100250 :        0        0        0        0 
e2100260 :        0        0        0        0 
e2100270 :        0        0        0        0 
e2100280 :        0        0        0        0 
e2100290 :        0        0        0        0 
e21002a0 :        0        0        0        0 
e21002b0 :        0        0        0        0 
e21002c0 :        0        0        0        0 
e21002d0 :        0        0        0        0 
e21002e0 :        0        0        0        0 
e21002f0 :        0        0        0        0 
e2100300 :      e00        0        0        0 
e2100310 :        0        0        0        0 
e2100320 :        0        0        0        0 
e2100330 :        0        0        0        0 
e2100340 :        0        0        0        0 
e2100350 :        0        0        0        0 
e2100360 :        0        0        0        0 
e2100370 :        0        0        0        0 
e2100380 :        0        0        0        0 
e2100390 :        0        0        0        0 
e21003a0 :        0        0        0        0 
e21003b0 :        0        0        0        0 
e21003c0 :        0        0        0        0 
e21003d0 :        0        0        0        0 
e21003e0 :        0        0        0        0 
e21003f0 :        0        0        0        0 
[root@FriendlyARM /tmp]# 

./sfr 0xe1700000 256
addr = 0xe1700000, size = 256 
SFR addr = 0xe1700000, size = 0x100
e1700000 :     3fc4        0       ff     8000 
e1700010 :     8000        0        0        0 
e1700020 :     3fc4        0       ff     8000 
e1700030 :     8000        0        0        0 
e1700040 :     3fc4        0       ff     8000 
e1700050 :     8000        0        0        0 
e1700060 :     3fc4        0       ff     8000 
e1700070 :     8000        0        0        0 
e1700080 :     3fc4        0       ff     8000 
e1700090 :     8000        0        0        0 
e17000a0 :     3fc4        0       ff     8000 
e17000b0 :     8000        0        0        0 
e17000c0 :     3fc4        0       ff     8000 
e17000d0 :     8000        0        0        0 
e17000e0 :     3fc4        0       ff     8000 
e17000f0 :     8000        0        0        0 
e1700100 :     3fc4        0       ff     8000 
e1700110 :     8000        0        0        0 
e1700120 :     3fc4        0       ff     8000 
e1700130 :     8000        0        0        0 
e1700140 :     3fc4        0       ff     8000 
e1700150 :     8000        0        0        0 
e1700160 :     3fc4        0       ff     8000 
e1700170 :     8000        0        0        0 
e1700180 :     3fc4        0       ff     8000 
e1700190 :     8000        0        0        0 
e17001a0 :     3fc4        0       ff     8000 
e17001b0 :     8000        0        0        0 
e17001c0 :     3fc4        0       ff     8000 
e17001d0 :     8000        0        0        0 
e17001e0 :     3fc4        0       ff     8000 
e17001f0 :     8000        0        0        0 
e1700200 :     3fc4        0       ff     8000 
e1700210 :     8000        0        0        0 
e1700220 :     3fc4        0       ff     8000 
e1700230 :     8000        0        0        0 
e1700240 :     3fc4        0       ff     8000 
e1700250 :     8000        0        0        0 
e1700260 :     3fc4        0       ff     8000 
e1700270 :     8000        0        0        0 
e1700280 :     3fc4        0       ff     8000 
e1700290 :     8000        0        0        0 
e17002a0 :     3fc4        0       ff     8000 
e17002b0 :     8000        0        0        0 
e17002c0 :     3fc4        0       ff     8000 
e17002d0 :     8000        0        0        0 
e17002e0 :     3fc4        0       ff     8000 
e17002f0 :     8000        0        0        0 
e1700300 :     3fc4        0       ff     8000 
e1700310 :     8000        0        0        0 
e1700320 :     3fc4        0       ff     8000 
e1700330 :     8000        0        0        0 
e1700340 :     3fc4        0       ff     8000 
e1700350 :     8000        0        0        0 
e1700360 :     3fc4        0       ff     8000 
e1700370 :     8000        0        0        0 
e1700380 :     3fc4        0       ff     8000 
e1700390 :     8000        0        0        0 
e17003a0 :     3fc4        0       ff     8000 
e17003b0 :     8000        0        0        0 
e17003c0 :     3fc4        0       ff     8000 
e17003d0 :     8000        0        0        0 
e17003e0 :     3fc4        0       ff     8000 
e17003f0 :     8000        0        0        0 
[root@FriendlyARM /tmp]# 
⚠️ **GitHub.com Fallback** ⚠️