{"action":"closed","issue":{"url":"https://api.github.com/repos/OlliV/zeke/issues/77","labels_url":"https://api.github.com/repos/OlliV/zeke/issues/77/labels{/name}","comments_url":"https://api.github.com/repos/OlliV/zeke/issues/77/comments","events_url":"https://api.github.com/repos/OlliV/zeke/issues/77/events","html_url":"https://github.com/OlliV/zeke/issues/77","id":66452782,"number":77,"title":"emmc driver doesn't work with Kingston SD10V/8GB cards","user":{"login":"OlliV","id":1401625,"avatar_url":"https://avatars.githubusercontent.com/u/1401625?v=3","gravatar_id":"","url":"https://api.github.com/users/OlliV","html_url":"https://github.com/OlliV","followers_url":"https://api.github.com/users/OlliV/followers","following_url":"https://api.github.com/users/OlliV/following{/other_user}","gists_url":"https://api.github.com/users/OlliV/gists{/gist_id}","starred_url":"https://api.github.com/users/OlliV/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlliV/subscriptions","organizations_url":"https://api.github.com/users/OlliV/orgs","repos_url":"https://api.github.com/users/OlliV/repos","events_url":"https://api.github.com/users/OlliV/events{/privacy}","received_events_url":"https://api.github.com/users/OlliV/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/OlliV/zeke/labels/bug","name":"bug","color":"fc2929"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-05T16:05:02Z","updated_at":"2015-04-06T08:15:02Z","closed_at":"2015-04-06T08:15:02Z","body":"Some random timeouts while waiting for SD interrupts while reading sinit to memory, is seen. This eventually causes the kernel to hang for some reason.\r\n\r\nThe issue is around the following lines in kern/hal/rpi/rpi_emmc.c, sd_issue_command_int():\r\n\r\n        /* Wait for command complete interrupt */\r\n        TIMEOUT_WAIT(mmio_read(EMMC_BASE + EMMC_INTERRUPT) & 0x8001, timeout);\r\n        irpts = mmio_read(EMMC_BASE + EMMC_INTERRUPT);\r\n        /* Clear command complete status */\r\n        mmio_write(EMMC_BASE + EMMC_INTERRUPT, 0xffff0001);\r\n    \r\n        /* Test for errors */\r\n        if ((irpts & 0xffff0001) != 0x1) {\r\n        #ifdef configRPI_EMMC_DEBUG\r\n            KERROR(KERROR_ERR,\r\n                   \"SD: error occured whilst waiting for command \"\r\n                   \"complete interrupt\\n\");\r\n        #endif\r\n            dev->last_error = irpts & 0xffff0000;\r\n            dev->last_interrupt = irpts;\r\n            return;\r\n        }\r\n\r\nand this is reported then sd_do_data_command() that gets called by read function."}}