Jump to content

    

an.skornyakov

Участник
  • Content Count

    26
  • Joined

  • Last visited

Community Reputation

0 Обычный

About an.skornyakov

  • Rank
    Участник
  1. Действительно находятся, я же не отрицаю. В разделе "3.3.2.1 Power Mode Control register" в частности написано, что при значени 00 для битов PM0 и PM1(два младших бита) регистра PCON выполнение инструкций WFI и WFE вводит проц в Sleep, либо Deep Sleep режим, в зависимости от того, как выставлен бит SLEEPDEEP. Собственно где этот бит и как его выставить я и не могу найти, и об этом мой вопрос.
  2. В том то и дело что нет. Но по идее значение этого бита по умолчанию - 0, что в LPC17xx соответствовало просто Sleep mode, этот режим мне и нужен. Сейчас буду пробовать, но вообще, конечно не очень красиво так делать. Непонятно. UPD: ну вроде получилось, небольшая экономия потребления на лицо. Но где выставить бит SLEEPDEEP, я так и не разобрался, следовательно, ввести проц, например, в Deep-sleep mode не получается.
  3. Привет! Есть девайс на основе lpc4088, никак не могу разобраться как ввести проц в sleep mode. В ДШ написано что нужно выставить в некое состояние бит SLEEPDEEP в Cortex-M4 System Control Register, чтобы выбрать между Sleep mode и Deep Sleep mode, никак не могу найти этот регистр.
  4. Вторая физика завелась, работает, первая так и не хочет. Я вручную уже вписывал ей нужный бит в том регистре, не помогло. У нас сроки немного поджимают, мы пока вопрос с первой физикой отложили. Сейчас важно начальству показать что то осязаемое, например к монитору подключить и вывести что-нибудь. Поэтому мы на HDMI переключились. Да уж, это не то о чем ты мечтаешь, когда планируешь пользоваться UDP
  5. Привет. Я тут пытаюсь HDMI на нашей плате теперь завести, ты не имел с ним дело? Там у них первым делом грузится модуль vpss (video processing subsystem), я когда его загрузить пытаюсь, он мне вот так ругается. дальше бектрейс выдает и Я так понял, что Syslink пытается определить запущен ли драйвер на другом процессоре. На EVM два процессора A8 и MSP430, а у нас на плате только A8. У него естественно это никак не получается, он пытается, пытается, но тщетно.
  6. Проверили несколько раз, пин подтянут к единичке, не соединен ни с чем больше, соплей нет. Еще хотим попробовать физику с адреса 0:01 на 0:03 перевести.
  7. Да в любом случае большое спасибо за помощь, со многим получилось разобраться, либо подтвердить наши догадки/соображения. Мы сравнили регистры на обоих физиках и есть небольшие различия.. Регистр Рабочая физика Нерабочая физика 0x16 0x201 0x230 0x17 0x5e01 0x3E10 Получилось что на рабочей физике (16 регистр) включен бит "Override strap-in for MII mode", а на нерабочей физике вместо него стоит бит "Override strap-in for NAND Tree mode". А в 17 регистре стоят соотвественно разные статусы strap-in. Может это быть причиной нашей проблемы?
  8. Получилось достучаться до второй PHY, которая на втором EMAC, подняли eth1, пингует, пингуется вроде все хорошо. На первой физике хоть убей срыв генерации идет, если проц втыкаем, даже без SD-карточки ( с которой грузимся ). Не можем пока понять в чем дело, электронщик волосы рвет, постарел лет на 5 сразу. Выглядит плохо.
  9. Да, мы смотрели насчет back-to-back, CONFIG подтянуты к 0 все, а регистр надо посмотреть будет. Мы начали копать насчет клоков и получилась интересная картинка. У нас сейчас на устройстве две физики запаяны одинаковые, на MDIO 0:01 и 0:02, первая на emac0 заведена, 2ая на emac1. 1) Включаемся без проца генерация отличная на обоих PHY, 25 МГц (100 mbps) 2) Включаемся с процессором, но не грузимся на первой физике сбивается генерация, там порядка 1.5 МГц на осциллографе на второй физике все нормально Разбираемся, что сбивает генерацию на первой физике.
  10. Своя, что касается EMAC'a, ethernet и т д - отличия небольшие: - другая PHY, 100 Mbps (на EVM гигабитная стоит) - 4 пина Rx и 4 пина Tx, висят в воздухе у нас, так как на 100 mbps они не используются - пин GMTCLK не подключен, тоже потому что физика 100 mbps Да, электронщик говорит, что клоки изначально есть и глазки горят, но потом, во время загрузки клоки пропадают и одновременно с этим гаснут глазки (возможно пропадают уже при загрузке u-boot'a). Очень, очень похоже, на то, что вы пишете.
  11. Ну вроде получилось loopback выставить, по прежнему ничего не работает, и временами выдает предупреждение с дампом и бектрейсом. На всякий случай я его полностью приведу, вдруг еще чего в глаза бросится. Мне непонятно почему глазки на физике не горят, хотя линк вроде как есть. net eth0: EMAC Basic registers net eth0: EMAC: EmuControl:00000000, FifoControl: 00020018 net eth0: EMAC: MBPEnable:00002020, RXUnicastSet: 00000001, RXMaxLen=000005F2 net eth0: EMAC: MacControl:00000203, MacStatus: 00000000, MacConfig=18440203 net eth0: EMAC Statistics net eth0: EMAC: rx_good_frames:0 net eth0: EMAC: rx_broadcast_frames:0 net eth0: EMAC: rx_multicast_frames:0 net eth0: EMAC: rx_pause_frames:0 net eth0: EMAC: rx_crcerrors:0 net eth0: EMAC: rx_align_code_errors:0 net eth0: EMAC: rx_oversized_frames:0 net eth0: EMAC: rx_jabber_frames:0 net eth0: EMAC: rx_undersized_frames:0 net eth0: EMAC: rx_fragments:0 net eth0: EMAC: rx_filtered_frames:0 net eth0: EMAC: rx_qos_filtered_frames:0 net eth0: EMAC: rx_octets:0 net eth0: EMAC: tx_goodframes:0 net eth0: EMAC: tx_bcastframes:0 net eth0: EMAC: tx_mcastframes:0 net eth0: EMAC: tx_pause_frames:0 net eth0: EMAC: tx_deferred_frames:0 net eth0: EMAC: tx_collision_frames:0 net eth0: EMAC: tx_single_coll_frames:0 net eth0: EMAC: tx_mult_coll_frames:0 net eth0: EMAC: tx_excessive_collisions:0 net eth0: EMAC: tx_late_collisions:0 net eth0: EMAC: tx_underrun:0 net eth0: EMAC: tx_carrier_sense_errors:0 net eth0: EMAC: tx_octets:0 net eth0: EMAC: net_octets:0 net eth0: EMAC: rx_sof_overruns:0 net eth0: EMAC: rx_mof_overruns:0 net eth0: EMAC: rx_dma_overruns:0 net eth0: CPDMA: state: active net eth0: CPDMA: txidver: 4ec0020e net eth0: CPDMA: txcontrol: 1 net eth0: CPDMA: txteardown: 0 net eth0: CPDMA: rxidver: 0 net eth0: CPDMA: rxcontrol: 1 net eth0: CPDMA: softreset: 0 net eth0: CPDMA: rxteardown: 0 net eth0: CPDMA: txintstatraw: 0 net eth0: CPDMA: txintstatmasked: 0 net eth0: CPDMA: txintmaskset: 1 net eth0: CPDMA: txintmaskclear: 1 net eth0: CPDMA: macinvector: 0 net eth0: CPDMA: maceoivector: 2 net eth0: CPDMA: rxintstatraw: fe00 net eth0: CPDMA: rxintstatmasked: 0 net eth0: CPDMA: rxintmaskset: 1 net eth0: CPDMA: rxintmaskclear: 1 net eth0: CPDMA: dmaintstatraw: 0 net eth0: CPDMA: dmaintstatmasked: 0 net eth0: CPDMA: dmaintmaskset: 2 net eth0: CPDMA: dmaintmaskclear: 2 net eth0: CPDMA: dmacontrol: 0 net eth0: CPDMA: dmastatus: 0 net eth0: CPDMA: rxbuffofs: 0 net eth0: channel 0 (tx 0) state active net eth0: hdp: 4a103000 net eth0: cp: 4a103080 net eth0: stats head_enqueue: 14 net eth0: stats tail_enqueue: 1143 net eth0: stats pad_enqueue: 0 net eth0: stats misqueued: 0 net eth0: stats desc_alloc_fail: 9 net eth0: stats pad_alloc_fail: 0 net eth0: stats runt_receive_buff: 0 net eth0: stats runt_transmit_buff: 1009 net eth0: stats empty_dequeue: 5 net eth0: stats busy_dequeue: 8 net eth0: stats good_dequeue: 5 net eth0: stats requeue: 0 net eth0: stats teardown_dequeue: 1024 net eth0: channel 32 (rx 0) state active net eth0: hdp: 4a102000 net eth0: cp: 3fa053fa net eth0: rxfree: 80 net eth0: stats head_enqueue: 1 net eth0: stats tail_enqueue: 127 net eth0: stats pad_enqueue: 0 net eth0: stats misqueued: 0 net eth0: stats desc_alloc_fail: 0 net eth0: stats pad_alloc_fail: 0 net eth0: stats runt_receive_buff: 0 net eth0: stats runt_transmit_buff: 0 net eth0: stats empty_dequeue: 0 net eth0: stats busy_dequeue: 0 net eth0: stats good_dequeue: 0 net eth0: stats requeue: 0 net eth0: stats teardown_dequeue: 0 ------------[ cut here ]------------ WARNING: at drivers/net/davinci_cpdma.c:890 cpdma_chan_stop+0xbc/0x164() Modules linked in: ipv6 Backtrace: [<c0049bb8>] (dump_backtrace+0x0/0x110) from [<c0385ea8>] (dump_stack+0x18/0x1c) r7:00000000 r6:c024a380 r5:c046c6bf r4:0000037a [<c0385e90>] (dump_stack+0x0/0x1c) from [<c006c6cc>] (warn_slowpath_common+0x54/0x6c) [<c006c678>] (warn_slowpath_common+0x0/0x6c) from [<c006c708>] (warn_slowpath_null+0x24/0x2c) r9:c051abcc r8:c051afcc r7:c04b4000 r6:c052db04 r5:d6764480 r4:d675ea80 [<c006c6e4>] (warn_slowpath_null+0x0/0x2c) from [<c024a380>] (cpdma_chan_stop+0xbc/0x164) [<c024a2c4>] (cpdma_chan_stop+0x0/0x164) from [<c02492b0>] (emac_dev_tx_timeout+0x50/0x68) r5:d6563340 r4:d6563000 [<c0249260>] (emac_dev_tx_timeout+0x0/0x68) from [<c031a0ac>] (dev_watchdog+0x164/0x234) r5:00000000 r4:d6563000 [<c0319f48>] (dev_watchdog+0x0/0x234) from [<c0076f9c>] (run_timer_softirq+0x148/0x1e4) r6:c0319f48 r5:00000100 r4:c051a1c0 [<c0076e54>] (run_timer_softirq+0x0/0x1e4) from [<c007183c>] (__do_softirq+0x80/0x108) [<c00717bc>] (__do_softirq+0x0/0x108) from [<c007190c>] (irq_exit+0x48/0x94) [<c00718c4>] (irq_exit+0x0/0x94) from [<c003b080>] (asm_do_IRQ+0x80/0xa0) [<c003b000>] (asm_do_IRQ+0x0/0xa0) from [<c0387ef4>] (__irq_svc+0x34/0xa0) Exception stack(0xc04b5f48 to 0xc04b5f90) 5f40: 81600281 40000013 c04b5f90 00000814 c04b4000 c04f8f00 5f60: c002e2c0 c04b8074 80000000 413fc082 0000001f c04b5f9c c04b5f90 c04b5f90 5f80: c0046f8c c0046f90 80000013 ffffffff r5:fa200000 r4:ffffffff [<c0046f44>] (default_idle+0x0/0x54) from [<c0047534>] (cpu_idle+0x50/0x90) [<c00474e4>] (cpu_idle+0x0/0x90) from [<c0381244>] (rest_init+0x60/0x78) r5:c04f8f00 r4:c051d13c [<c03811e4>] (rest_init+0x0/0x78) from [<c0008cc4>] (start_kernel+0x270/0x2c8) [<c0008a54>] (start_kernel+0x0/0x2c8) from [<80008048>] (0x80008048) ---[ end trace 57992c7a3c2d3abb ]---
  12. Хорошая идея, я правильно понимаю, что для того, чтобы включить режим LOOPBACK сначала надо GMIIEN бит снять?
  13. 2.6.37 Ну прям так утверждать не могу, конечно, но электронщик заявляет, что да. Судя по их хедеру и моему даташиту, что касается конкретно прерываний EMAC, то да, совпадают. #define TI816X_IRQ_MACRXTHR0 40 #define TI816X_IRQ_MACRXINT0 41 #define TI816X_IRQ_MACTXINT0 42 #define TI816X_IRQ_MACMISC0 43 #define TI816X_IRQ_MACRXTHR1 44 #define TI816X_IRQ_MACRXINT1 45 #define TI816X_IRQ_MACTXINT1 46 #define TI816X_IRQ_MACMISC1 47 У меня обработчик прерываний emac_irq() только с прерыванием MACTXINT0 вызывается (receive pending interrupt).
  14. тоже нет.. Да вроде весь, на каждый EMAC по 4 прерывания. static struct resource ti816x_emac1_resources[] = { { .start = TI816X_EMAC1_BASE, .end = TI816X_EMAC1_BASE + 0x3FFF, .flags = IORESOURCE_MEM, }, { .start = TI816X_IRQ_MACRXTHR0, .end = TI816X_IRQ_MACRXTHR0, .flags = IORESOURCE_IRQ, }, { .start = TI816X_IRQ_MACRXINT0, .end = TI816X_IRQ_MACRXINT0, .flags = IORESOURCE_IRQ, }, { .start = TI816X_IRQ_MACTXINT0, .end = TI816X_IRQ_MACTXINT0, .flags = IORESOURCE_IRQ, }, { .start = TI816X_IRQ_MACMISC0, .end = TI816X_IRQ_MACMISC0, .flags = IORESOURCE_IRQ, }, };
  15. тоже нет.. Да вроде весь, на каждый EMAC по 4 прерывания. static struct resource ti816x_emac1_resources[] = { { .start = TI816X_EMAC1_BASE, .end = TI816X_EMAC1_BASE + 0x3FFF, .flags = IORESOURCE_MEM, }, { .start = TI816X_IRQ_MACRXTHR0, .end = TI816X_IRQ_MACRXTHR0, .flags = IORESOURCE_IRQ, }, { .start = TI816X_IRQ_MACRXINT0, .end = TI816X_IRQ_MACRXINT0, .flags = IORESOURCE_IRQ, }, { .start = TI816X_IRQ_MACTXINT0, .end = TI816X_IRQ_MACTXINT0, .flags = IORESOURCE_IRQ, }, { .start = TI816X_IRQ_MACMISC0, .end = TI816X_IRQ_MACMISC0, .flags = IORESOURCE_IRQ, }, };