| .. | .. |
|---|
| 158 | 158 | int rk_avb_read_lock_state(uint8_t *lock_state) |
|---|
| 159 | 159 | { |
|---|
| 160 | 160 | #ifdef CONFIG_OPTEE_CLIENT |
|---|
| 161 | + uint8_t vboot_flag = 0; |
|---|
| 161 | 162 | int ret; |
|---|
| 162 | 163 | |
|---|
| 163 | 164 | ret = trusty_read_lock_state(lock_state); |
|---|
| .. | .. |
|---|
| 167 | 168 | case TEE_ERROR_GENERIC: |
|---|
| 168 | 169 | case TEE_ERROR_NO_DATA: |
|---|
| 169 | 170 | case TEE_ERROR_ITEM_NOT_FOUND: |
|---|
| 170 | | - *lock_state = 1; |
|---|
| 171 | + if (trusty_read_vbootkey_enable_flag(&vboot_flag)) { |
|---|
| 172 | + printf("Can't read vboot flag\n"); |
|---|
| 173 | + return -1; |
|---|
| 174 | + } |
|---|
| 175 | + |
|---|
| 176 | + if (vboot_flag) |
|---|
| 177 | + *lock_state = 0; |
|---|
| 178 | + else |
|---|
| 179 | + *lock_state = 1; |
|---|
| 180 | + |
|---|
| 171 | 181 | if (rk_avb_write_lock_state(*lock_state)) { |
|---|
| 172 | 182 | printf("avb_write_lock_state error!"); |
|---|
| 173 | 183 | ret = -1; |
|---|