diff options
| author | Dario Nieuwenhuis <[email protected]> | 2023-03-27 03:33:06 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2023-03-27 03:33:06 +0200 |
| commit | cffc3fc7956570c66bf1bd259a4f68a8ca02fe58 (patch) | |
| tree | 25ef48ee2e02a29528cf2d42bff4d78d52f349bf /src/runner.rs | |
| parent | bb90bb8c563a02d314ba574f45816d5d3c79be38 (diff) | |
Fix build with log.
Diffstat (limited to 'src/runner.rs')
| -rw-r--r-- | src/runner.rs | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/src/runner.rs b/src/runner.rs index 5d840bc59..9945af3fc 100644 --- a/src/runner.rs +++ b/src/runner.rs | |||
| @@ -11,6 +11,7 @@ use crate::bus::Bus; | |||
| 11 | pub use crate::bus::SpiBusCyw43; | 11 | pub use crate::bus::SpiBusCyw43; |
| 12 | use crate::consts::*; | 12 | use crate::consts::*; |
| 13 | use crate::events::{EventQueue, EventStatus}; | 13 | use crate::events::{EventQueue, EventStatus}; |
| 14 | use crate::fmt::Bytes; | ||
| 14 | use crate::nvram::NVRAM; | 15 | use crate::nvram::NVRAM; |
| 15 | use crate::structs::*; | 16 | use crate::structs::*; |
| 16 | use crate::{events, Core, IoctlState, IoctlType, CHIP, MTU}; | 17 | use crate::{events, Core, IoctlState, IoctlType, CHIP, MTU}; |
| @@ -23,6 +24,7 @@ struct LogState { | |||
| 23 | buf_count: usize, | 24 | buf_count: usize, |
| 24 | } | 25 | } |
| 25 | 26 | ||
| 27 | #[cfg(feature = "firmware-logs")] | ||
| 26 | impl Default for LogState { | 28 | impl Default for LogState { |
| 27 | fn default() -> Self { | 29 | fn default() -> Self { |
| 28 | Self { | 30 | Self { |
| @@ -175,7 +177,6 @@ where | |||
| 175 | let mut shared = [0; SharedMemData::SIZE]; | 177 | let mut shared = [0; SharedMemData::SIZE]; |
| 176 | self.bus.bp_read(shared_addr, &mut shared).await; | 178 | self.bus.bp_read(shared_addr, &mut shared).await; |
| 177 | let shared = SharedMemData::from_bytes(&shared); | 179 | let shared = SharedMemData::from_bytes(&shared); |
| 178 | info!("shared: {:08x}", shared); | ||
| 179 | 180 | ||
| 180 | self.log.addr = shared.console_addr + 8; | 181 | self.log.addr = shared.console_addr + 8; |
| 181 | } | 182 | } |
| @@ -238,7 +239,7 @@ where | |||
| 238 | warn!("TX stalled"); | 239 | warn!("TX stalled"); |
| 239 | } else { | 240 | } else { |
| 240 | if let Some(packet) = self.ch.try_tx_buf() { | 241 | if let Some(packet) = self.ch.try_tx_buf() { |
| 241 | trace!("tx pkt {:02x}", &packet[..packet.len().min(48)]); | 242 | trace!("tx pkt {:02x}", Bytes(&packet[..packet.len().min(48)])); |
| 242 | 243 | ||
| 243 | let mut buf = [0; 512]; | 244 | let mut buf = [0; 512]; |
| 244 | let buf8 = slice8_mut(&mut buf); | 245 | let buf8 = slice8_mut(&mut buf); |
| @@ -275,7 +276,7 @@ where | |||
| 275 | 276 | ||
| 276 | let total_len = (total_len + 3) & !3; // round up to 4byte | 277 | let total_len = (total_len + 3) & !3; // round up to 4byte |
| 277 | 278 | ||
| 278 | trace!(" {:02x}", &buf8[..total_len.min(48)]); | 279 | trace!(" {:02x}", Bytes(&buf8[..total_len.min(48)])); |
| 279 | 280 | ||
| 280 | self.bus.wlan_write(&buf[..(total_len / 4)]).await; | 281 | self.bus.wlan_write(&buf[..(total_len / 4)]).await; |
| 281 | self.ch.tx_done(); | 282 | self.ch.tx_done(); |
| @@ -295,7 +296,7 @@ where | |||
| 295 | if status & STATUS_F2_PKT_AVAILABLE != 0 { | 296 | if status & STATUS_F2_PKT_AVAILABLE != 0 { |
| 296 | let len = (status & STATUS_F2_PKT_LEN_MASK) >> STATUS_F2_PKT_LEN_SHIFT; | 297 | let len = (status & STATUS_F2_PKT_LEN_MASK) >> STATUS_F2_PKT_LEN_SHIFT; |
| 297 | self.bus.wlan_read(&mut buf, len).await; | 298 | self.bus.wlan_read(&mut buf, len).await; |
| 298 | trace!("rx {:02x}", &slice8_mut(&mut buf)[..(len as usize).min(48)]); | 299 | trace!("rx {:02x}", Bytes(&slice8_mut(&mut buf)[..(len as usize).min(48)])); |
| 299 | self.rx(&slice8_mut(&mut buf)[..len as usize]); | 300 | self.rx(&slice8_mut(&mut buf)[..len as usize]); |
| 300 | } | 301 | } |
| 301 | } | 302 | } |
| @@ -343,11 +344,11 @@ where | |||
| 343 | if cdc_header.id == self.ioctl_id { | 344 | if cdc_header.id == self.ioctl_id { |
| 344 | if cdc_header.status != 0 { | 345 | if cdc_header.status != 0 { |
| 345 | // TODO: propagate error instead | 346 | // TODO: propagate error instead |
| 346 | panic!("IOCTL error {=i32}", cdc_header.status as i32); | 347 | panic!("IOCTL error {}", cdc_header.status as i32); |
| 347 | } | 348 | } |
| 348 | 349 | ||
| 349 | let resp_len = cdc_header.len as usize; | 350 | let resp_len = cdc_header.len as usize; |
| 350 | info!("IOCTL Response: {:02x}", &payload[CdcHeader::SIZE..][..resp_len]); | 351 | info!("IOCTL Response: {:02x}", Bytes(&payload[CdcHeader::SIZE..][..resp_len])); |
| 351 | 352 | ||
| 352 | (unsafe { &mut *buf }[..resp_len]).copy_from_slice(&payload[CdcHeader::SIZE..][..resp_len]); | 353 | (unsafe { &mut *buf }[..resp_len]).copy_from_slice(&payload[CdcHeader::SIZE..][..resp_len]); |
| 353 | self.ioctl_state.set(IoctlState::Done { resp_len }); | 354 | self.ioctl_state.set(IoctlState::Done { resp_len }); |
| @@ -365,7 +366,7 @@ where | |||
| 365 | return; | 366 | return; |
| 366 | } | 367 | } |
| 367 | let bcd_packet = &payload[packet_start..]; | 368 | let bcd_packet = &payload[packet_start..]; |
| 368 | trace!(" {:02x}", &bcd_packet[..(bcd_packet.len() as usize).min(36)]); | 369 | trace!(" {:02x}", Bytes(&bcd_packet[..(bcd_packet.len() as usize).min(36)])); |
| 369 | 370 | ||
| 370 | let mut event_packet = EventPacket::from_bytes(&bcd_packet[..EventPacket::SIZE].try_into().unwrap()); | 371 | let mut event_packet = EventPacket::from_bytes(&bcd_packet[..EventPacket::SIZE].try_into().unwrap()); |
| 371 | event_packet.byteswap(); | 372 | event_packet.byteswap(); |
| @@ -382,7 +383,8 @@ where | |||
| 382 | if event_packet.hdr.oui != BROADCOM_OUI { | 383 | if event_packet.hdr.oui != BROADCOM_OUI { |
| 383 | warn!( | 384 | warn!( |
| 384 | "unexpected ethernet OUI {:02x}, expected Broadcom OUI {:02x}", | 385 | "unexpected ethernet OUI {:02x}, expected Broadcom OUI {:02x}", |
| 385 | event_packet.hdr.oui, BROADCOM_OUI | 386 | Bytes(&event_packet.hdr.oui), |
| 387 | Bytes(BROADCOM_OUI) | ||
| 386 | ); | 388 | ); |
| 387 | return; | 389 | return; |
| 388 | } | 390 | } |
| @@ -405,7 +407,12 @@ where | |||
| 405 | 407 | ||
| 406 | let evt_type = events::Event::from(event_packet.msg.event_type as u8); | 408 | let evt_type = events::Event::from(event_packet.msg.event_type as u8); |
| 407 | let evt_data = &bcd_packet[EventMessage::SIZE..][..event_packet.msg.datalen as usize]; | 409 | let evt_data = &bcd_packet[EventMessage::SIZE..][..event_packet.msg.datalen as usize]; |
| 408 | debug!("=== EVENT {}: {} {:02x}", evt_type, event_packet.msg, evt_data); | 410 | debug!( |
| 411 | "=== EVENT {:?}: {:?} {:02x}", | ||
| 412 | evt_type, | ||
| 413 | event_packet.msg, | ||
| 414 | Bytes(evt_data) | ||
| 415 | ); | ||
| 409 | 416 | ||
| 410 | if evt_type == events::Event::AUTH || evt_type == events::Event::JOIN { | 417 | if evt_type == events::Event::AUTH || evt_type == events::Event::JOIN { |
| 411 | self.events.publish_immediate(EventStatus { | 418 | self.events.publish_immediate(EventStatus { |
| @@ -424,7 +431,7 @@ where | |||
| 424 | return; | 431 | return; |
| 425 | } | 432 | } |
| 426 | let packet = &payload[packet_start..]; | 433 | let packet = &payload[packet_start..]; |
| 427 | trace!("rx pkt {:02x}", &packet[..(packet.len() as usize).min(48)]); | 434 | trace!("rx pkt {:02x}", Bytes(&packet[..(packet.len() as usize).min(48)])); |
| 428 | 435 | ||
| 429 | match self.ch.try_rx_buf() { | 436 | match self.ch.try_rx_buf() { |
| 430 | Some(buf) => { | 437 | Some(buf) => { |
| @@ -490,7 +497,7 @@ where | |||
| 490 | 497 | ||
| 491 | let total_len = (total_len + 3) & !3; // round up to 4byte | 498 | let total_len = (total_len + 3) & !3; // round up to 4byte |
| 492 | 499 | ||
| 493 | trace!(" {:02x}", &buf8[..total_len.min(48)]); | 500 | trace!(" {:02x}", Bytes(&buf8[..total_len.min(48)])); |
| 494 | 501 | ||
| 495 | self.bus.wlan_write(&buf[..total_len / 4]).await; | 502 | self.bus.wlan_write(&buf[..total_len / 4]).await; |
| 496 | } | 503 | } |
