Hi, I used the foc_x86_32 platform to try part_blk run script ,there was a error.
[init -> atapi_drv] 5 and below: yes enabled: yes [init -> atapi_drv] PRD base at 002f9000 (physical) at 00002000 (virtual) [init -> atapi_drv] Device initialized! Enabling interrupts ... Error: Test execution timed out make: *** [run/part_blk] Error 254
I try to find where is wrong and I get it
I add some print function in file : genodedir/os/src/drivers/atapi/ata_device.cc
void Ata::Device::read_capacity() { _block_start = 0; _block_size = 512;
enum { CMD_NATIVE_MAX_ADDRESS = 0xf8 };
if (_lba48) { PERR("_LBA48 TRUE"); //PERR("dev_num= %c\n",dev_num()); PERR("dev_num= %d\n",dev_num()); if (!reg_non_data_lba48(dev_num(), CMD_NATIVE_MAX_ADDRESS, 0, 1, 0UL, 0UL)) { PERR("reg in");
_block_end = _pio->inb(CB_SN); /* 0 - 7 */ _block_end |= _pio->inb(CB_CL) << 8; /* 8 - 15 */ _block_end |= _pio->inb(CB_CH) << 16; /* 16 - 23 */ _block_end |= _pio->inb(CB_DH) << 24; /* 24 - 31 */ } PERR("reg out"); } else { ...
and log message like this
[init -> atapi_drv] Bus master interface base addr: 0000c040 (I/O) secondary (no) (supported) [init -> atapi_drv] LBA48 [init -> atapi_drv] UDMA Modes supported: [init -> atapi_drv] 0 and below: yes enabled: no [init -> atapi_drv] 1 and below: yes enabled: no [init -> atapi_drv] 2 and below: yes enabled: no [init -> atapi_drv] 3 and below: yes enabled: no [init -> atapi_drv] 4 and below: yes enabled: no [init -> atapi_drv] 5 and below: yes enabled: yes [init -> atapi_drv] PRD base at 002f9000 (physical) at 00002000 (virtual) [init -> atapi_drv] Device initialized! Enabling interrupts ... [init -> atapi_drv] _LBA48 TRUE [init -> atapi_drv] dev_num= 0 Error: Test execution timed out make: *** [run/part_blk] Error 254
I think the dev_num =0 is the reason to cause my issue , but i can not solve it . Any help is appreciated.
Regards Yuqing Wang
Hi,
On 04/27/2013 10:51 AM, yuqing wang wrote:
Hi, I used the foc_x86_32 platform to try part_blk run script ,there was a error.
[init -> atapi_drv] 5 and below: yes enabled: yes [init -> atapi_drv] PRD base at 002f9000 (physical) at 00002000 (virtual) [init -> atapi_drv] Device initialized! Enabling interrupts ... Error: Test execution timed out make: *** [run/part_blk] Error 254
I try to find where is wrong and I get it
You don't get an interrupt. Glancing at the run script, I see that the ACPI driver is missing. On hardware and even Qemu it is usually required to find out the correct GSI (global system interrupt) values. It then overwrites the ones in the PCI config space, that are legacy PIC interrupt numbers. Also the driver parses the MADT in order to retrieve any interrupt overrides. Since you also seem to use the AHCI run script, you can configure the ACPI server and the ATAPI driver in the same way as it's done there.
Regards,
Sebastian
hi, I am working on usd driver on dde_linux. The function 'moudle_usb_stor_init' on dde_linux/src/lib/usb/main.cc is very important to me. How can I find the function achievement or which lib it is from? thanks.
Hi,
On 05/01/2013 04:29 PM, longjks wrote:
hi, I am working on usd driver on dde_linux. The function 'moudle_usb_stor_init' on dde_linux/src/lib/usb/main.cc is very important to me. How can I find the function achievement or which lib it is from? thanks.
The function registers the USB storage driver. The real function name is 'usb_stor_init', which can be found in 'contrib/drivers/usb/storage/usb.c'. The prototype 'module_usb_stor_init' is generated by 'module_init' macro at the very end of the file.
Regards,
Sebastian
thanks. At 2013-05-02 17:29:13,"Sebastian Sumpf" <Sebastian.Sumpf@...1...> wrote:
Hi,
On 05/01/2013 04:29 PM, longjks wrote:
hi, I am working on usd driver on dde_linux. The function 'moudle_usb_stor_init' on dde_linux/src/lib/usb/main.cc is very important to me. How can I find the function achievement or which lib it is from? thanks.
The function registers the USB storage driver. The real function name is 'usb_stor_init', which can be found in 'contrib/drivers/usb/storage/usb.c'. The prototype 'module_usb_stor_init' is generated by 'module_init' macro at the very end of the file.
Regards,
Sebastian
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with <2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 _______________________________________________ Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main