Rockbox Development > Starting Development and Compiling
Beginning steps in kernel disassembly and analysis
dconrad:
Excellent, thanks for holding my hand through this!
Just a couple quick "this should be obvious, but..." questions -
When you say the manual, you're referring to this X1000 Programming Manual?
And it looks like the GPIOs map like this:
PA0-PA31 --> 0x00-0x1F
PB0-PB31 --> 0x20-0x3F
PC0-PC31 --> 0x40-0x5F
PD0-PD31 --> 0x60-0x6F
^^ Is that right?
dconrad:
One more data dump for posterity - I think I have some AXP stuff here. I wanted to find this so I could make sure the first attempts wouldn't set them wrong and kill whatever they're hooked up to...
--- Code: --- regulator_init_data_ARRAY_80510ca8[1].*supply_ XREF[1,8]: 80510c38(*), 80510c44(*),
regulator_init_data_ARRAY_80510ca8[2].*supply_ 80510c50(*), 80510c5c(*),
regulator_init_data_ARRAY_80510ca8[3].*supply_ 80510c68(*), 80510c74(*),
regulator_init_data_ARRAY_80510ca8[4].*supply_ 80510c80(*), 80510c8c(*),
regulator_init_data_ARRAY_80510ca8[5].*supply_ 80510c98(*)
regulator_init_data_ARRAY_80510ca8[6].*supply_
regulator_init_data_ARRAY_80510ca8[7].*supply_
regulator_init_data_ARRAY_80510ca8[8].*supply_
regulator_init_data_ARRAY_80510ca8
80510ca8 00 00 00 regulato
00 5c 75
4b 80 d0
80510ca8 00 00 00 00 5c regulato [0] XREF[1]: 80510c38(*)
75 4b 80 d0 12
13 00 d0 12 13
80510ca8 00 00 00 00 char * 00000000 *supply_regu XREF[1]: 80510c38(*)
80510cac 5c 75 4b 80 d0 regulati constraints
12 13 00 d0 12
13 00 00 00 00
80510cac 5c 75 4b 80 char * s_axp_ldo1_804b755c *name = "axp_ldo1"
80510cb0 d0 12 13 00 int 1312D0h min_uV v output range - v
80510cb4 d0 12 13 00 int 1312D0h max_uV v output range - v
80510cb8 00 00 00 00 int 0h uV_offset
80510cbc 00 00 00 00 int 0h min_uA i output range - i
80510cc0 00 00 00 00 int 0h max_uA i output range - i
80510cc4 00 00 00 00 uint 0h valid_modes_
80510cc8 00 00 00 00 uint 0h valid_ops_mask
80510ccc 00 00 00 00 int 0h input_uV input v, if supply
80510cd0 00 00 00 00 00 regulato state_disk
00 00 00 00 00
00 00 00 00 00
80510cd0 00 00 00 00 int 0h uV suspend voltage
80510cd4 00 00 00 00 uint 0h mode suspend reg operat
80510cd8 00 00 00 00 int 0h enabled reg enabled in sus
80510cdc 00 00 00 00 int 0h disabled reg disabled in su
80510ce0 00 00 00 00 00 regulato state_mem
00 00 00 00 00
00 00 00 00 00
80510ce0 00 00 00 00 int 0h uV suspend voltage
80510ce4 00 00 00 00 uint 0h mode suspend reg operat
80510ce8 00 00 00 00 int 0h enabled reg enabled in sus
80510cec 00 00 00 00 int 0h disabled reg disabled in su
80510cf0 00 00 00 00 00 regulato state_standby
00 00 00 00 00
00 00 00 00 00
80510cf0 00 00 00 00 int 0h uV suspend voltage
80510cf4 00 00 00 00 uint 0h mode suspend reg operat
80510cf8 00 00 00 00 int 0h enabled reg enabled in sus
80510cfc 00 00 00 00 int 0h disabled reg disabled in su
80510d00 00 00 00 00 int 0h initial_state
80510d04 00 00 00 00 uint 0h initial_mode
80510d08 00 00 00 00 uint 0h ramp_delay
80510d0c 00 uint:1 0h always_on:1
80510d0c 00 uint:1 0h boot_on:1
80510d0c 00 00 00 00 uint:1 0h apply_uV apply uV constrain
80510d10 01 00 00 00 int 1h num_consumer
80510d14 0c 11 51 80 regulato DAT_8051110c *consumer_su
80510d18 00 00 00 00 int * 00000000 *regulator_i
80510d1c 00 00 00 00 void * 00000000 *driver_data
80510d20 00 00 00 00 68 regulato [1] XREF[1]: 80510c44(*)
75 4b 80 40 77
1b 00 a0 5a 32
80510d20 00 00 00 00 char * 00000000 *supply_regu XREF[1]: 80510c44(*)
80510d24 68 75 4b 80 40 regulati constraints
77 1b 00 a0 5a
32 00 00 00 00
80510d24 68 75 4b 80 char * s_axp_ldo2_804b7568 *name = "axp_ldo2"
80510d28 40 77 1b 00 int 1B7740h min_uV v output range - v
80510d2c a0 5a 32 00 int 325AA0h max_uV v output range - v
80510d30 00 00 00 00 int 0h uV_offset
80510d34 00 00 00 00 int 0h min_uA i output range - i
80510d38 00 00 00 00 int 0h max_uA i output range - i
80510d3c 00 00 00 00 uint 0h valid_modes_
80510d40 09 00 00 00 uint 9h valid_ops_mask
80510d44 00 00 00 00 int 0h input_uV input v, if supply
80510d48 00 00 00 00 00 regulato state_disk
00 00 00 00 00
00 00 00 00 00
80510d48 00 00 00 00 int 0h uV suspend voltage
80510d4c 00 00 00 00 uint 0h mode suspend reg operat
80510d50 00 00 00 00 int 0h enabled reg enabled in sus
80510d54 00 00 00 00 int 0h disabled reg disabled in su
80510d58 00 00 00 00 00 regulato state_mem
00 00 00 00 00
00 00 00 00 00
80510d58 00 00 00 00 int 0h uV suspend voltage
80510d5c 00 00 00 00 uint 0h mode suspend reg operat
80510d60 00 00 00 00 int 0h enabled reg enabled in sus
80510d64 00 00 00 00 int 0h disabled reg disabled in su
80510d68 a0 5a 32 00 00 regulato state_standby
00 00 00 01 00
00 00 00 00 00
80510d68 a0 5a 32 00 int 325AA0h uV suspend voltage
80510d6c 00 00 00 00 uint 0h mode suspend reg operat
80510d70 01 00 00 00 int 1h enabled reg enabled in sus
80510d74 00 00 00 00 int 0h disabled reg disabled in su
80510d78 02 00 00 00 int 2h initial_state
80510d7c 00 00 00 00 uint 0h initial_mode
80510d80 00 00 00 00 uint 0h ramp_delay
80510d84 00 uint:1 0h always_on:1
80510d84 00 uint:1 0h boot_on:1
80510d84 00 00 00 00 uint:1 0h apply_uV apply uV constrain
80510d88 01 00 00 00 int 1h num_consumer
80510d8c 14 11 51 80 regulato DAT_80511114 *consumer_su
80510d90 00 00 00 00 int * 00000000 *regulator_i
80510d94 00 00 00 00 void * 00000000 *driver_data
80510d98 00 00 00 00 74 regulato [2] XREF[1]: 80510c50(*)
75 4b 80 60 ae
0a 00 e0 67 35
80510d98 00 00 00 00 char * 00000000 *supply_regu XREF[1]: 80510c50(*)
80510d9c 74 75 4b 80 60 regulati constraints
ae 0a 00 e0 67
35 00 00 00 00
80510d9c 74 75 4b 80 char * s_axp_ldo3_804b7574 *name = "axp_ldo3"
80510da0 60 ae 0a 00 int AAE60h min_uV v output range - v
80510da4 e0 67 35 00 int 3567E0h max_uV v output range - v
80510da8 00 00 00 00 int 0h uV_offset
80510dac 00 00 00 00 int 0h min_uA i output range - i
80510db0 00 00 00 00 int 0h max_uA i output range - i
80510db4 00 00 00 00 uint 0h valid_modes_
80510db8 09 00 00 00 uint 9h valid_ops_mask
80510dbc 00 00 00 00 int 0h input_uV input v, if supply
80510dc0 00 00 00 00 00 regulato state_disk
00 00 00 00 00
00 00 00 00 00
80510dc0 00 00 00 00 int 0h uV suspend voltage
80510dc4 00 00 00 00 uint 0h mode suspend reg operat
80510dc8 00 00 00 00 int 0h enabled reg enabled in sus
80510dcc 00 00 00 00 int 0h disabled reg disabled in su
80510dd0 00 00 00 00 00 regulato state_mem
00 00 00 00 00
00 00 00 00 00
80510dd0 00 00 00 00 int 0h uV suspend voltage
80510dd4 00 00 00 00 uint 0h mode suspend reg operat
80510dd8 00 00 00 00 int 0h enabled reg enabled in sus
80510ddc 00 00 00 00 int 0h disabled reg disabled in su
80510de0 00 00 00 00 00 regulato state_standby
00 00 00 00 00
00 00 00 00 00
80510de0 00 00 00 00 int 0h uV suspend voltage
80510de4 00 00 00 00 uint 0h mode suspend reg operat
80510de8 00 00 00 00 int 0h enabled reg enabled in sus
80510dec 00 00 00 00 int 0h disabled reg disabled in su
80510df0 00 00 00 00 int 0h initial_state
80510df4 00 00 00 00 uint 0h initial_mode
80510df8 00 00 00 00 uint 0h ramp_delay
80510dfc 00 uint:1 0h always_on:1
80510dfc 00 uint:1 0h boot_on:1
80510dfc 00 00 00 00 uint:1 0h apply_uV apply uV constrain
80510e00 01 00 00 00 int 1h num_consumer
80510e04 1c 11 51 80 regulato DAT_8051111c *consumer_su
80510e08 00 00 00 00 int * 00000000 *regulator_i
80510e0c 00 00 00 00 void * 00000000 *driver_data
80510e10 00 00 00 00 80 regulato [3] XREF[1]: 80510c5c(*)
75 4b 80 40 77
1b 00 a0 5a 32
80510e10 00 00 00 00 char * 00000000 *supply_regu XREF[1]: 80510c5c(*)
80510e14 80 75 4b 80 40 regulati constraints
77 1b 00 a0 5a
32 00 00 00 00
80510e14 80 75 4b 80 char * s_axp_ldo4_804b7580 *name = "axp_ldo4"
80510e18 40 77 1b 00 int 1B7740h min_uV v output range - v
80510e1c a0 5a 32 00 int 325AA0h max_uV v output range - v
80510e20 00 00 00 00 int 0h uV_offset
80510e24 00 00 00 00 int 0h min_uA i output range - i
80510e28 00 00 00 00 int 0h max_uA i output range - i
80510e2c 00 00 00 00 uint 0h valid_modes_
80510e30 09 00 00 00 uint 9h valid_ops_mask
80510e34 00 00 00 00 int 0h input_uV input v, if supply
80510e38 00 00 00 00 00 regulato state_disk
00 00 00 00 00
00 00 00 00 00
80510e38 00 00 00 00 int 0h uV suspend voltage
80510e3c 00 00 00 00 uint 0h mode suspend reg operat
80510e40 00 00 00 00 int 0h enabled reg enabled in sus
80510e44 00 00 00 00 int 0h disabled reg disabled in su
80510e48 00 00 00 00 00 regulato state_mem
00 00 00 00 00
00 00 00 00 00
80510e48 00 00 00 00 int 0h uV suspend voltage
80510e4c 00 00 00 00 uint 0h mode suspend reg operat
80510e50 00 00 00 00 int 0h enabled reg enabled in sus
80510e54 00 00 00 00 int 0h disabled reg disabled in su
80510e58 00 00 00 00 00 regulato state_standby
00 00 00 00 00
00 00 00 00 00
80510e58 00 00 00 00 int 0h uV suspend voltage
80510e5c 00 00 00 00 uint 0h mode suspend reg operat
80510e60 00 00 00 00 int 0h enabled reg enabled in sus
80510e64 00 00 00 00 int 0h disabled reg disabled in su
80510e68 00 00 00 00 int 0h initial_state
80510e6c 00 00 00 00 uint 0h initial_mode
80510e70 00 00 00 00 uint 0h ramp_delay
80510e74 00 uint:1 0h always_on:1
80510e74 00 uint:1 0h boot_on:1
80510e74 00 00 00 00 uint:1 0h apply_uV apply uV constrain
80510e78 01 00 00 00 int 1h num_consumer
80510e7c 24 11 51 80 regulato DAT_80511124 *consumer_su
80510e80 00 00 00 00 int * 00000000 *regulator_i
80510e84 00 00 00 00 void * 00000000 *driver_data
80510e88 00 00 00 00 8c regulato [4] XREF[1]: 80510c68(*)
75 4b 80 60 ae
0a 00 e0 67 35
80510e88 00 00 00 00 char * 00000000 *supply_regu XREF[1]: 80510c68(*)
80510e8c 8c 75 4b 80 60 regulati constraints
ae 0a 00 e0 67
35 00 00 00 00
80510e8c 8c 75 4b 80 char * s_axp_buck1_804b758c *name = "axp_buck1"
80510e90 60 ae 0a 00 int AAE60h min_uV v output range - v
80510e94 e0 67 35 00 int 3567E0h max_uV v output range - v
80510e98 00 00 00 00 int 0h uV_offset
80510e9c 00 00 00 00 int 0h min_uA i output range - i
80510ea0 00 00 00 00 int 0h max_uA i output range - i
80510ea4 00 00 00 00 uint 0h valid_modes_
80510ea8 09 00 00 00 uint 9h valid_ops_mask
80510eac 00 00 00 00 int 0h input_uV input v, if supply
80510eb0 00 00 00 00 00 regulato state_disk
00 00 00 00 00
00 00 00 00 00
80510eb0 00 00 00 00 int 0h uV suspend voltage
80510eb4 00 00 00 00 uint 0h mode suspend reg operat
80510eb8 00 00 00 00 int 0h enabled reg enabled in sus
80510ebc 00 00 00 00 int 0h disabled reg disabled in su
80510ec0 00 00 00 00 00 regulato state_mem
00 00 00 00 00
00 00 00 00 00
80510ec0 00 00 00 00 int 0h uV suspend voltage
80510ec4 00 00 00 00 uint 0h mode suspend reg operat
80510ec8 00 00 00 00 int 0h enabled reg enabled in sus
80510ecc 00 00 00 00 int 0h disabled reg disabled in su
80510ed0 00 00 00 00 00 regulato state_standby
00 00 00 00 00
00 00 00 00 00
80510ed0 00 00 00 00 int 0h uV suspend voltage
80510ed4 00 00 00 00 uint 0h mode suspend reg operat
80510ed8 00 00 00 00 int 0h enabled reg enabled in sus
80510edc 00 00 00 00 int 0h disabled reg disabled in su
80510ee0 00 00 00 00 int 0h initial_state
80510ee4 00 00 00 00 uint 0h initial_mode
80510ee8 00 00 00 00 uint 0h ramp_delay
80510eec 00 uint:1 0h always_on:1
80510eec 00 uint:1 0h boot_on:1
80510eec 00 00 00 00 uint:1 0h apply_uV apply uV constrain
80510ef0 01 00 00 00 int 1h num_consumer
80510ef4 2c 11 51 80 regulato DAT_8051112c *consumer_su
80510ef8 00 00 00 00 int * 00000000 *regulator_i
80510efc 00 00 00 00 void * 00000000 *driver_data
80510f00 00 00 00 00 98 regulato [5] XREF[1]: 80510c74(*)
75 4b 80 60 ae
0a 00 b8 b6 22
80510f00 00 00 00 00 char * 00000000 *supply_regu XREF[1]: 80510c74(*)
80510f04 98 75 4b 80 60 regulati constraints
ae 0a 00 b8 b6
22 00 00 00 00
80510f04 98 75 4b 80 char * s_axp_buck2_804b7598 *name = "axp_buck2"
80510f08 60 ae 0a 00 int AAE60h min_uV v output range - v
80510f0c b8 b6 22 00 int 22B6B8h max_uV v output range - v
80510f10 00 00 00 00 int 0h uV_offset
80510f14 00 00 00 00 int 0h min_uA i output range - i
80510f18 00 00 00 00 int 0h max_uA i output range - i
80510f1c 00 00 00 00 uint 0h valid_modes_
80510f20 09 00 00 00 uint 9h valid_ops_mask
80510f24 00 00 00 00 int 0h input_uV input v, if supply
80510f28 00 00 00 00 00 regulato state_disk
00 00 00 00 00
00 00 00 00 00
80510f28 00 00 00 00 int 0h uV suspend voltage
80510f2c 00 00 00 00 uint 0h mode suspend reg operat
80510f30 00 00 00 00 int 0h enabled reg enabled in sus
80510f34 00 00 00 00 int 0h disabled reg disabled in su
80510f38 00 00 00 00 00 regulato state_mem
00 00 00 00 00
00 00 00 00 00
80510f38 00 00 00 00 int 0h uV suspend voltage
80510f3c 00 00 00 00 uint 0h mode suspend reg operat
80510f40 00 00 00 00 int 0h enabled reg enabled in sus
80510f44 00 00 00 00 int 0h disabled reg disabled in su
80510f48 00 00 00 00 00 regulato state_standby
00 00 00 00 00
00 00 00 00 00
80510f48 00 00 00 00 int 0h uV suspend voltage
80510f4c 00 00 00 00 uint 0h mode suspend reg operat
80510f50 00 00 00 00 int 0h enabled reg enabled in sus
80510f54 00 00 00 00 int 0h disabled reg disabled in su
80510f58 00 00 00 00 int 0h initial_state
80510f5c 00 00 00 00 uint 0h initial_mode
80510f60 00 00 00 00 uint 0h ramp_delay
80510f64 00 uint:1 0h always_on:1
80510f64 00 uint:1 0h boot_on:1
80510f64 00 00 00 00 uint:1 0h apply_uV apply uV constrain
80510f68 01 00 00 00 int 1h num_consumer
80510f6c 34 11 51 80 regulato DAT_80511134 *consumer_su
80510f70 00 00 00 00 int * 00000000 *regulator_i
80510f74 00 00 00 00 void * 00000000 *driver_data
80510f78 00 00 00 00 a4 regulato [6] XREF[1]: 80510c80(*)
75 4b 80 60 ae
0a 00 e0 67 35
80510f78 00 00 00 00 char * 00000000 *supply_regu XREF[1]: 80510c80(*)
80510f7c a4 75 4b 80 60 regulati constraints
ae 0a 00 e0 67
35 00 00 00 00
80510f7c a4 75 4b 80 char * s_axp_buck3_804b75a4 *name = "axp_buck3"
80510f80 60 ae 0a 00 int AAE60h min_uV v output range - v
80510f84 e0 67 35 00 int 3567E0h max_uV v output range - v
80510f88 00 00 00 00 int 0h uV_offset
80510f8c 00 00 00 00 int 0h min_uA i output range - i
80510f90 00 00 00 00 int 0h max_uA i output range - i
80510f94 00 00 00 00 uint 0h valid_modes_
80510f98 09 00 00 00 uint 9h valid_ops_mask
80510f9c 00 00 00 00 int 0h input_uV input v, if supply
80510fa0 00 00 00 00 00 regulato state_disk
00 00 00 00 00
00 00 00 00 00
80510fa0 00 00 00 00 int 0h uV suspend voltage
80510fa4 00 00 00 00 uint 0h mode suspend reg operat
80510fa8 00 00 00 00 int 0h enabled reg enabled in sus
80510fac 00 00 00 00 int 0h disabled reg disabled in su
80510fb0 00 00 00 00 00 regulato state_mem
00 00 00 00 00
00 00 00 00 00
80510fb0 00 00 00 00 int 0h uV suspend voltage
80510fb4 00 00 00 00 uint 0h mode suspend reg operat
80510fb8 00 00 00 00 int 0h enabled reg enabled in sus
80510fbc 00 00 00 00 int 0h disabled reg disabled in su
80510fc0 00 00 00 00 00 regulato state_standby
00 00 00 00 00
00 00 00 00 00
80510fc0 00 00 00 00 int 0h uV suspend voltage
80510fc4 00 00 00 00 uint 0h mode suspend reg operat
80510fc8 00 00 00 00 int 0h enabled reg enabled in sus
80510fcc 00 00 00 00 int 0h disabled reg disabled in su
80510fd0 00 00 00 00 int 0h initial_state
80510fd4 00 00 00 00 uint 0h initial_mode
80510fd8 00 00 00 00 uint 0h ramp_delay
80510fdc 00 uint:1 0h always_on:1
80510fdc 00 uint:1 0h boot_on:1
80510fdc 00 00 00 00 uint:1 0h apply_uV apply uV constrain
80510fe0 01 00 00 00 int 1h num_consumer
80510fe4 3c 11 51 80 regulato DAT_8051113c *consumer_su
80510fe8 00 00 00 00 int * 00000000 *regulator_i
80510fec 00 00 00 00 void * 00000000 *driver_data
80510ff0 00 00 00 00 b0 regulato [7] XREF[1]: 80510c8c(*)
75 4b 80 60 ae
0a 00 e0 67 35
80510ff0 00 00 00 00 char * 00000000 *supply_regu XREF[1]: 80510c8c(*)
80510ff4 b0 75 4b 80 60 regulati constraints
ae 0a 00 e0 67
35 00 00 00 00
80510ff4 b0 75 4b 80 char * s_axp_buck4_804b75b0 *name = "axp_buck4"
80510ff8 60 ae 0a 00 int AAE60h min_uV v output range - v
80510ffc e0 67 35 00 int 3567E0h max_uV v output range - v
80511000 00 00 00 00 int 0h uV_offset
80511004 00 00 00 00 int 0h min_uA i output range - i
80511008 00 00 00 00 int 0h max_uA i output range - i
8051100c 00 00 00 00 uint 0h valid_modes_
80511010 09 00 00 00 uint 9h valid_ops_mask
80511014 00 00 00 00 int 0h input_uV input v, if supply
80511018 00 00 00 00 00 regulato state_disk
00 00 00 00 00
00 00 00 00 00
80511018 00 00 00 00 int 0h uV suspend voltage
8051101c 00 00 00 00 uint 0h mode suspend reg operat
80511020 00 00 00 00 int 0h enabled reg enabled in sus
80511024 00 00 00 00 int 0h disabled reg disabled in su
80511028 00 00 00 00 00 regulato state_mem
00 00 00 00 00
00 00 00 00 00
80511028 00 00 00 00 int 0h uV suspend voltage
8051102c 00 00 00 00 uint 0h mode suspend reg operat
80511030 00 00 00 00 int 0h enabled reg enabled in sus
80511034 00 00 00 00 int 0h disabled reg disabled in su
80511038 00 00 00 00 00 regulato state_standby
00 00 00 00 00
00 00 00 00 00
80511038 00 00 00 00 int 0h uV suspend voltage
8051103c 00 00 00 00 uint 0h mode suspend reg operat
80511040 00 00 00 00 int 0h enabled reg enabled in sus
80511044 00 00 00 00 int 0h disabled reg disabled in su
80511048 00 00 00 00 int 0h initial_state
8051104c 00 00 00 00 uint 0h initial_mode
80511050 00 00 00 00 uint 0h ramp_delay
80511054 00 uint:1 0h always_on:1
80511054 00 uint:1 0h boot_on:1
80511054 00 00 00 00 uint:1 0h apply_uV apply uV constrain
80511058 01 00 00 00 int 1h num_consumer
8051105c 44 11 51 80 regulato DAT_80511144 *consumer_su
80511060 00 00 00 00 int * 00000000 *regulator_i
80511064 00 00 00 00 void * 00000000 *driver_data
80511068 00 00 00 00 bc regulato [8] XREF[1]: 80510c98(*)
75 4b 80 40 77
1b 00 a0 5a 32
80511068 00 00 00 00 char * 00000000 *supply_regu XREF[1]: 80510c98(*)
8051106c bc 75 4b 80 40 regulati constraints
77 1b 00 a0 5a
32 00 00 00 00
8051106c bc 75 4b 80 char * s_axp_ldoio0_804b75bc *name = "axp_ldoio0"
80511070 40 77 1b 00 int 1B7740h min_uV v output range - v
80511074 a0 5a 32 00 int 325AA0h max_uV v output range - v
80511078 00 00 00 00 int 0h uV_offset
8051107c 00 00 00 00 int 0h min_uA i output range - i
80511080 00 00 00 00 int 0h max_uA i output range - i
80511084 00 00 00 00 uint 0h valid_modes_
80511088 09 00 00 00 uint 9h valid_ops_mask
8051108c 00 00 00 00 int 0h input_uV input v, if supply
80511090 00 00 00 00 00 regulato state_disk
00 00 00 00 00
00 00 00 00 00
80511090 00 00 00 00 int 0h uV suspend voltage
80511094 00 00 00 00 uint 0h mode suspend reg operat
80511098 00 00 00 00 int 0h enabled reg enabled in sus
8051109c 00 00 00 00 int 0h disabled reg disabled in su
805110a0 00 00 00 00 00 regulato state_mem
00 00 00 00 00
00 00 00 00 00
805110a0 00 00 00 00 int 0h uV suspend voltage
805110a4 00 00 00 00 uint 0h mode suspend reg operat
805110a8 00 00 00 00 int 0h enabled reg enabled in sus
805110ac 00 00 00 00 int 0h disabled reg disabled in su
805110b0 00 00 00 00 00 regulato state_standby
00 00 00 00 00
00 00 00 00 00
805110b0 00 00 00 00 int 0h uV suspend voltage
805110b4 00 00 00 00 uint 0h mode suspend reg operat
805110b8 00 00 00 00 int 0h enabled reg enabled in sus
805110bc 00 00 00 00 int 0h disabled reg disabled in su
805110c0 00 00 00 00 int 0h initial_state
805110c4 00 00 00 00 uint 0h initial_mode
805110c8 00 00 00 00 uint 0h ramp_delay
805110cc 00 uint:1 0h always_on:1
805110cc 00 uint:1 0h boot_on:1
805110cc 00 00 00 00 uint:1 0h apply_uV apply uV constrain
805110d0 01 00 00 00 int 1h num_consumer
805110d4 4c 11 51 80 regulato DAT_8051114c *consumer_su
805110d8 00 00 00 00 int * 00000000 *regulator_i
805110dc 00 00 00 00 void * 00000000 *driver_data
axp_supply_init_data_805110e0 XREF[1]: 80510ca4(*)
805110e0 54 11 51 axp_supp
80 20 03
00 00 20
805110e0 54 11 51 80 power_su power_supply_info_8051 *battery_info = XREF[1]: 80510ca4(*)
805110e4 20 03 00 00 uint 320h chgcur
805110e8 20 03 00 00 uint 320h chgearcur
805110ec 20 03 00 00 uint 320h chgsuscur
805110f0 20 03 00 00 uint 320h chgclscur
805110f4 68 10 00 00 uint 1068h chgvol
805110f8 0a 00 00 00 uint Ah chgend
805110fc 00 00 00 00 int 0h limit_on
80511100 32 00 00 00 uint 32h chgpretime
80511104 e0 01 00 00 uint 1E0h chgcsttime
80511108 19 00 00 00 uint 19h adc_freq
DAT_8051110c XREF[1]: 80510d14(*)
8051110c 00 ?? 00h
8051110d 00 ?? 00h
8051110e 00 ?? 00h
8051110f 00 ?? 00h
80511110 60 75 4b 80 addr s_ldo1_804b755c+4 = "ldo1"
DAT_80511114 XREF[1]: 80510d8c(*)
80511114 00 ?? 00h
80511115 00 ?? 00h
80511116 00 ?? 00h
80511117 00 ?? 00h
80511118 6c 75 4b 80 addr s_ldo2_804b7568+4 = "ldo2"
DAT_8051111c XREF[1]: 80510e04(*)
8051111c 00 ?? 00h
8051111d 00 ?? 00h
8051111e 00 ?? 00h
8051111f 00 ?? 00h
80511120 78 75 4b 80 addr s_ldo3_804b7574+4 = "ldo3"
DAT_80511124 XREF[1]: 80510e7c(*)
80511124 00 ?? 00h
80511125 00 ?? 00h
80511126 00 ?? 00h
80511127 00 ?? 00h
80511128 84 75 4b 80 addr s_ldo4_804b7580+4 = "ldo4"
DAT_8051112c XREF[1]: 80510ef4(*)
8051112c 00 ?? 00h
8051112d 00 ?? 00h
8051112e 00 ?? 00h
8051112f 00 ?? 00h
80511130 c8 75 4b 80 addr s_dcdc1_804b75c8 = "dcdc1"
DAT_80511134 XREF[1]: 80510f6c(*)
80511134 00 ?? 00h
80511135 00 ?? 00h
80511136 00 ?? 00h
80511137 00 ?? 00h
80511138 d0 75 4b 80 addr s_vdd_cpu_804b75d0 = "vdd_cpu"
DAT_8051113c XREF[1]: 80510fe4(*)
8051113c 00 ?? 00h
8051113d 00 ?? 00h
8051113e 00 ?? 00h
8051113f 00 ?? 00h
80511140 d8 75 4b 80 addr s_dcdc3_804b75d8 = "dcdc3"
DAT_80511144 XREF[1]: 8051105c(*)
80511144 00 ?? 00h
80511145 00 ?? 00h
80511146 00 ?? 00h
80511147 00 ?? 00h
80511148 e0 75 4b 80 addr s_vdd_core_804b75e0 = "vdd_core"
DAT_8051114c XREF[1]: 805110d4(*)
8051114c 00 ?? 00h
8051114d 00 ?? 00h
8051114e 00 ?? 00h
8051114f 00 ?? 00h
80511150 c0 75 4b 80 addr s_ldoio0_804b75bc+4 = "ldoio0"
power_supply_info_80511154 XREF[1]: 805110e0(*)
80511154 ec 75 4b power_su
80 02 00
00 00 68
80511154 ec 75 4b 80 char * s_EASTROAD_804b75ec name = "EASTROAD" XREF[1]: 805110e0(*)
80511158 02 00 00 00 int 2h technology
8051115c 68 10 00 00 int 1068h voltage_max_
80511160 48 0d 00 00 int D48h voltage_min_
80511164 00 00 00 00 int 0h charge_full_
80511168 00 00 00 00 int 0h charge_empty
8051116c e4 0c 00 00 int CE4h energy_full_
80511170 00 00 00 00 int 0h energy_empty
80511174 00 00 00 00 int 0h use_for_apm
80511178 00 ?? 00h
80511179 00 ?? 00h
8051117a 00 ?? 00h
--- End code ---
Notes from above:
--- Code: ---dcdc1: 0.70 - 3.50
dcdc2: 0.70 - 2.275 *
dcdc3: 0.70 - 3.50
dcdc4: 0.70 - 3.50 **
ldo1: 1.25 - 1.25
ldo2: 1.80 - 3.30 ***
ldo3: 0.70 - 3.50
ldo4: 1.80 - 3.30
ldo io 0: 1.80 - 3.30
* dcdc2 notes: labelled "vdd_cpu"
**dcdc4 notes: labelled "vdd_core"
*** ldo2 notes: Standby state enabled, 3.30V, initial state "2"
--- End code ---
amachronic:
Yeah that's the manual I mean, and you have the GPIO numbering right. I have a "later" version of the manual which I got from Ingenic's FTP last year, marked October 2018. I don't know if there are any meaningful differences.
Re. power supply voltages -- after a reset all voltages will return to a default setting, and they can't be changed until fairly late in the boot. The ranges you got are simply ranges supported by the chip, and somewhere else, there may be an actual voltage setting. That might be in a data table, or could be buried inside a function call; who knows. But if none of the defaults are changed, then there may be nothing to see, unless they decided to redundantly set the defaults somewhere. The OF should be able to report the voltages through sysfs; I don't remember the full paths, but they are named axp_supplyer.N. I think that's how I learned about the Q1's voltage levels, because digging in the kernel wasn't revealing much. The M3K just used default voltages.
X1000 and AXP192 datasheets: https://drive.google.com/drive/folders/19Z_nSW88B7ibtFly0IaWw-yRYT97t9e7
dconrad:
So I've got enough code into this gerrit patch that it at least successfully compiles. It is definitely rough. I haven't successfully gotten any sort of life signs out of the player yet though - the backlight doesn't light, and the LCD doesn't show anything when I shine a flashlight into it.
I've been trying to use usbboot with:
--- Code: ---[root@localhost ingenic_tools]# ./usbboot --cpu x1000 --stage1 ../../build-erosqnative-boot/spl.erosq --wait 5 --stage2 ../../build-erosqnative/rockbox.erosq
--- End code ---
Is there anything super-obviously-wrong with what I'm doing - or my patchset?
amachronic:
The command line is wrong: use rockbox.bin. The scramble image has 8 bytes of header garbage at the beginning and obviously nothing will work if you get an illegal instruction right at the beginning of execution... assuming it gets that far. Does usbboot report everything is loaded? If you get an error on the 2nd stage it's a problem in the SPL (Use --verbose as the first argument)
I'll check your patch sometime tomorrow. I've been up till 2am trying to debug a weird issue with the shanling and my 256gb card with no luck. So, got to sleep now. Have fun with your problems!
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version