Additional CGU register decoding in dump_cgu.py.
This commit is contained in:
@ -32,7 +32,7 @@ from struct import unpack
|
|||||||
|
|
||||||
address = 0x40050014
|
address = 0x40050014
|
||||||
|
|
||||||
f = open('cgu.bin', 'read')
|
f = open(sys.argv[1], 'read')
|
||||||
d = '\x00' * 20 + f.read()
|
d = '\x00' * 20 + f.read()
|
||||||
length = len(d)
|
length = len(d)
|
||||||
f.close()
|
f.close()
|
||||||
@ -126,6 +126,243 @@ registers = {
|
|||||||
('CLK_SEL', 24, 5),
|
('CLK_SEL', 24, 5),
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
0x48: {
|
||||||
|
'name': 'IDIVA_CTRL',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('IDIV', 2, 2),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x4C: {
|
||||||
|
'name': 'IDIVB_CTRL',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('IDIV', 2, 4),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x50: {
|
||||||
|
'name': 'IDIVC_CTRL',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('IDIV', 2, 4),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x54: {
|
||||||
|
'name': 'IDIVD_CTRL',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('IDIV', 2, 4),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x58: {
|
||||||
|
'name': 'IDIVE_CTRL',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('IDIV', 2, 8),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x5C: {
|
||||||
|
'name': 'BASE_SAFE_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x60: {
|
||||||
|
'name': 'BASE_USB0_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x64: {
|
||||||
|
'name': 'BASE_PERIPH_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x68: {
|
||||||
|
'name': 'BASE_USB1_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x6C: {
|
||||||
|
'name': 'BASE_M4_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x70: {
|
||||||
|
'name': 'BASE_SPIFI_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x74: {
|
||||||
|
'name': 'BASE_SPI_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x78: {
|
||||||
|
'name': 'BASE_PHY_RX_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x7C: {
|
||||||
|
'name': 'BASE_PHY_TX_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x80: {
|
||||||
|
'name': 'BASE_APB1_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x84: {
|
||||||
|
'name': 'BASE_APB3_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x88: {
|
||||||
|
'name': 'BASE_LCD_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x8C: {
|
||||||
|
'name': 'BASE_VADC_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x90: {
|
||||||
|
'name': 'BASE_SDIO_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x94: {
|
||||||
|
'name': 'BASE_SSP0_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x98: {
|
||||||
|
'name': 'BASE_SSP1_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0x9C: {
|
||||||
|
'name': 'BASE_UART0_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0xA0: {
|
||||||
|
'name': 'BASE_UART1_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0xA4: {
|
||||||
|
'name': 'BASE_UART2_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0xA8: {
|
||||||
|
'name': 'BASE_UART3_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0xAC: {
|
||||||
|
'name': 'BASE_OUT_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0xC0: {
|
||||||
|
'name': 'BASE_APLL_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0xC4: {
|
||||||
|
'name': 'BASE_CGU_OUT0_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
0xC8: {
|
||||||
|
'name': 'BASE_CGU_OUT1_CLK',
|
||||||
|
'fields': (
|
||||||
|
('PD', 0, 1),
|
||||||
|
('AUTOBLOCK', 11, 1),
|
||||||
|
('CLK_SEL', 24, 5),
|
||||||
|
),
|
||||||
|
},
|
||||||
# TODO: Add other CGU registers. I did the ones that were
|
# TODO: Add other CGU registers. I did the ones that were
|
||||||
# valuable to me to debug CPU clock issues.
|
# valuable to me to debug CPU clock issues.
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user