Output more status info in zsbl for OpenPiton

This commit is contained in:
Michael Schaffner 2019-03-14 16:03:31 +01:00 committed by Florian Zaruba
parent a5f3184a65
commit e0a71ea0e9
3 changed files with 30 additions and 1 deletions

View file

@ -23,6 +23,15 @@ int sd_copy(void *dst, uint32_t src_lba, uint32_t size)
uint64_t * addr = (uint64_t *)raw_addr;
volatile uint64_t * p = (uint64_t *)dst;
for (uint32_t blk = 0; blk < size; blk++) {
if(blk % 100 == 0) {
print_uart("copying block ");
print_uart_dec(blk, 1);
print_uart(" of ");
print_uart_dec(size, 1);
print_uart(" blocks (");
print_uart_dec((blk*100)/size, 1);
print_uart(" %)\r\n");
}
for (uint32_t offset = 0; offset < 64; offset++) {
*(p++) = *(addr++);
}

View file

@ -55,6 +55,24 @@ void bin_to_hex(uint8_t inp, uint8_t res[2])
return;
}
void print_uart_dec(uint32_t val, uint32_t digits)
{
int i;
uint32_t k = 1000000000;
for (i = 9; i > -1; i--)
{
uint32_t cur = val / k;
val -= cur * k;
k /= 10;
if(cur || (i<digits)) {
digits = i;
uint8_t dec;
dec = bin_to_hex_table[cur & 0xf];
write_serial(dec);
}
}
}
void print_uart_int(uint32_t addr)
{
int i;
@ -87,4 +105,4 @@ void print_uart_byte(uint8_t byte)
bin_to_hex(byte, hex);
write_serial(hex[0]);
write_serial(hex[1]);
}
}

View file

@ -20,6 +20,8 @@ void init_uart();
void print_uart(const char* str);
void print_uart_dec(uint32_t val, uint32_t digits);
void print_uart_int(uint32_t addr);
void print_uart_addr(uint64_t addr);