[Acer Iconia A500] Skrilax_CZ:
Hmm, what are you using for shell input (USB gadget driver not working for me, but I didn't look into it yet)?

Looked on it a bit, noticed some details:

Ethernet gadget / rndis needs patching:

diff --git a/drivers/usb/gadget/android.c b/drivers/usb/gadget/android.c
index 7b3185f..c9be9d7 100644
--- a/drivers/usb/gadget/android.c
+++ b/drivers/usb/gadget/android.c
@@ -399,7 +399,7 @@ static int rndis_function_bind_config(struct android_usb_function *f,
rndis_control_intf.bInterfaceProtocol =	0x03;
}

-	return rndis_bind_config(c, rndis->ethaddr, rndis->vendorID,
+	return rndis_bind_config_vendor(c, rndis->ethaddr, rndis->vendorID,
rndis->manufacturer);
}

diff --git a/drivers/usb/gadget/f_rndis.c b/drivers/usb/gadget/f_rndis.c
index f187b9e..e0d659e 100644
--- a/drivers/usb/gadget/f_rndis.c
+++ b/drivers/usb/gadget/f_rndis.c
@@ -774,8 +774,9 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f)
rndis_set_param_medium(rndis->config, NDIS_MEDIUM_802_3, 0);
rndis_set_host_mac(rndis->config, rndis->ethaddr);

-	if (rndis_set_param_vendor(rndis->config, rndis->vendorID,
-	rndis->manufacturer))
+	if (rndis->manufacturer && rndis->vendorID &&
+	rndis_set_param_vendor(rndis->config, rndis->vendorID,
+	rndis->manufacturer))
goto fail;

/* NOTE: all that is done without knowing or caring about
@@ -857,7 +858,7 @@ static inline bool can_support_rndis(struct usb_configuration *c)
* for calling @gether_cleanup() before module unload.
*/
int
-rndis_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],
+rndis_bind_config_vendor(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],
u32 vendorID, const char *manufacturer)
{
struct f_rndis	*rndis;
diff --git a/drivers/usb/gadget/u_ether.h b/drivers/usb/gadget/u_ether.h
index 4677241..371c102 100644
--- a/drivers/usb/gadget/u_ether.h
+++ b/drivers/usb/gadget/u_ether.h
@@ -111,13 +111,13 @@ int eem_bind_config(struct usb_configuration *c);

#ifdef USB_ETH_RNDIS

-int rndis_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],
+int rndis_bind_config_vendor(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],
u32 vendorID, const char *manufacturer);

#else

static inline int
-rndis_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],
+rndis_bind_config_vendor(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],
u32 vendorID, const char *manufacturer)
{
return 0;
@@ -125,4 +125,22 @@ rndis_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],

#endif

+/**
+ * rndis_bind_config - add RNDIS network link to a configuration
+ * @c: the configuration to support the network link
+ * @ethaddr: a buffer in which the ethernet address of the host side
+ * side of the link was recorded
+ * Context: single threaded during gadget setup
+ *
+ * Returns zero on success, else negative errno.
+ *
+ * Caller must have called @gether_setup(). Caller is also responsible
+ * for calling @gether_cleanup() before module unload.
+ */
+static inline int rndis_bind_config(struct usb_configuration *c,
+	u8 ethaddr[ETH_ALEN])
+{
+	return rndis_bind_config_vendor(c, ethaddr, 0, NULL);
+}
+
#endif /* __U_ETHER_H */

and cmdline is forced by the kernel. Also bootloader inits lp0_vec as

lp0_vec=8192@0x3d805000